繁体   English   中英

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

[英]python: unpacking a string to a list

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

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

谢谢。

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

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

简单地str.split(',')将是["123","456"]

正如Daniel Roseman指出的那样,您应该注意不要使用变量或方法名,这些变量或方法名会无意间使内置方法(例如str蒙上阴影。

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

如果您只想要一个字符串列表,则非常简单:

my_list = my_string.split(',')

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

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

(此外,不要将str用作变量名,因为它会遮盖内置的str()函数。)

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

unpacked = str.split(',')

尽管我同意其他答案,但是在假定数字的无效字符串表示形式的情况下,您也应该处理异常。 以下面的代码段为例:

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)

只是一个想法。 祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM