python:将字符串解压缩到列表中

时间:2012-06-25 15:45:20

标签: python list unpack

a question on multiple-value elements in a config file的答案(完全符合我的需要)建议“从配置中解压缩字符串”。我在几个地方阅读了unpacking arguments lists建议的文档,但我不明白这与我的问题有什么关系。

我确信这一点必须显而易见:拥有字符串str = "123,456",如何将其转换为列表[123,456](字符串中用逗号分隔的元素数量可能会有所不同)

谢谢。

4 个答案:

答案 0 :(得分:5)

[int(x) for x in str.split(",")]

您基本上将函数int应用于通过拆分字符串生成的每个元素。

简单str.split(',')的结果为["123","456"]

正如丹尼尔罗斯曼指出的那样,你应该注意不要使用无意中掩盖内置方法的变量或方法名称,例如str

答案 1 :(得分:4)

您想要一个字符串列表还是一个整体列表?

如果你只想要一个字符串列表,那很简单:

my_list = my_string.split(',')

如果要将这些转换为整数,则需要:

my_list = map(int, my_string.split(','))

(另外,不要使用str作为变量名称,因为它会影响内置的str()函数。)

答案 2 :(得分:0)

最简单的方法是使用split()

unpacked = str.split(',')

答案 3 :(得分:0)

虽然我同意其他答案,但您应该在假定数字的无效字符串表示的情况下处理异常。举例来说,以下代码段为:

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)

只是一个想法。祝你好运!