2015-10-05 122 views
2

我使用split()将我的字符串转换为列表,但我发现我想要在一起的一些值使用split()分开。以下是我的例子。如何在python中使用split()时避免特定单词之间的空格

我有字符串作为"Ambala Cantt. 1.2 Bitter Gourd 1200 2000 1500"和分裂后,我希望它是[Ambala Cantt.,1.2,Bitter Gourd,1200,2000,1500]但我得到的结果为['Ambala', 'Cantt.', '1.2', 'Bitter', 'Gourd', '1200', '2000', '1500']。这是我不想要的。

为什么我使用split(),因为我有我的字符串转换成列表,以便我可以储存每个数据到我的数据库。任何人都可以告诉我如何解决这个或更好的方法来将我的字符串转换为列表。

+2

您是否有任何可重现的逻辑来决定如何拆分字符串?也许与你的字符串中的数字有关? – Ben

回答

2

貌似你试图从http://agmarknet.nic.in/解析为曼迪定价结果。这些都有可预测的模式。

example = "Ambala Cantt. 1.2 Bitter Gourd 1200 2000 1500" 
print([c.strip() for c in re.match(r""" 
    (?P<market>[^0-9]+) 
    (?P<arrivals>[^ ]+) 
    (?P<variety>[^0-9]+) 
    (?P<min>[0-9]+) 
    \ (?P<max>[0-9]+) 
    \ (?P<modal>[0-9]+)""", 
    example, 
    re.VERBOSE 
).groups()]) 
['Ambala Cantt.', '1.2', 'Bitter Gourd', '1200', '2000', '1500'] 
+0

我非常惊讶,你怎么知道我在做什么。是的,这就是我想要做的(解析mandi定价的结果,并从相同的URL http://agmarknet.nic.in/ )。感谢您解决这个问题,它工作100%。 – user3932077

+0

能否请您给我解释一下究竟你在这做?。不是太了解你的解决方案中使用的关键字,这将是很大的帮助,我的未来。 – user3932077

+0

研究[正则表达式](https://en.wikipedia.org/wiki/Regular_expression)是如何工作的,特别是[re](https://docs.python.org/2/library/re.html)模块在python中。这对于各种各样的问题都很方便。如果这个答案适合你,请将其标记为答案:) – TkTech

相关问题