0

关于配置文件中多值元素的问题的答案(完全符合我的需要)建议“从配置中解压缩字符串”。我阅读了文档以解压缩在几个地方建议的参数列表,但我不明白这与我的问题有何关系。

我相信这一定很明显:有一个字符串str = "123,456",我如何将其转换为列表[123,456](字符串中以逗号分隔的元素数量可能会有所不同)

谢谢你。

4

4 回答 4

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

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

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

正如 Daniel Roseman 指出的那样,您应该注意不要使用会无意中掩盖内置方法的变量或方法名称,例如str.

于 2012-06-25T15:47:06.497 回答
4

你想要一个字符串列表还是一个整数列表?

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

my_list = my_string.split(',')

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

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

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

于 2012-06-25T15:47:32.920 回答
0

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

unpacked = str.split(',')
于 2012-06-25T15:46:58.090 回答
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)

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

于 2015-05-19T02:56:34.493 回答