对a question on multiple-value elements in a config file(这完全符合我的需要)的答案建议“从配置中解压字符串”。我阅读了几处地方提出的unpacking arguments lists的文档,但我不明白这与我的问题有何关系。python:将一个字符串解压到列表
我相信这一定是显而易见的:有一个字符串str = "123,456"
,我怎样才能将其转换为列表[123,456]
(用逗号在字符串中分离出来可能会有所不同元素的个数)
谢谢。
对a question on multiple-value elements in a config file(这完全符合我的需要)的答案建议“从配置中解压字符串”。我阅读了几处地方提出的unpacking arguments lists的文档,但我不明白这与我的问题有何关系。python:将一个字符串解压到列表
我相信这一定是显而易见的:有一个字符串str = "123,456"
,我怎样才能将其转换为列表[123,456]
(用逗号在字符串中分离出来可能会有所不同元素的个数)
谢谢。
你想要一个字符串列表或一个整数列表吗?
如果你只是想要一个字符串列表,这是非常简单的:
my_list = my_string.split(',')
如果您希望将这些转换为整数,您需要:
my_list = map(int, my_string.split(','))
(另外,不要使用str
作为变量名称,因为它会影响内置的str()
函数。)
出于好奇,性能方面是否有显着差异使用'map'还是简单地使用我提供的语法? – pcalcao
不是。说实话,我通常自己使用列表理解,但这次键入'map'是因为键入:-)更快 –
最简单的方法是使用split()
。
unpacked = str.split(',')
[int(x) for x in str.split(",")]
你基本上将函数int
通过您的字符串的分割产生的每一个元素。
简单地说str.split(',')
的结果是["123","456"]
。
正如丹尼尔罗斯曼指出的那样,您应该注意不要使用无意中掩盖内置方法的变量或方法名称,例如str
。
尽管我同意其他答案,但您也应该在inva情况下处理异常假设数字的盖子字符串表示。以下面的代码片段为例:
number_string = "123,456,x21"
delimiter = ","
number_list = []
for item in number_string.split(delimiter):
try:
my_num = int(item)
number_list.append(item)
except ValueError, e:
# you can choose to just pass or handle the error like so
print "Skipping %s: %s" % (item, e.message)
只是一个想法。祝你好运!
谢谢你的回复。我用map()函数学了一些东西。另外“str”对于一个函数来说确实是一个糟糕的名字,我通常使用thisString版本(但墨菲法则规定我在全球发布时使用“str”):) – WoJ