Python:将拆分值分配给多个变量

时间:2012-11-20 10:58:53

标签: python arrays variable-assignment

我目前正在编写一个Python脚本来处理一些日志并重新格式化某些部分。部分脚本使用以下代码(作为示例):

var1,var2,var3=foo.split("|")

哪个工作正常。然而,如果有39个值,这可能看起来不太好(取消Python的可读性因素),例如:

var1,var2,var3,...,var39=foo.split("|")

是否有更好的方法来格式化此结构?

由于

5 个答案:

答案 0 :(得分:16)

您可以指定不同的变量。就像在Perl中一样,你只需要在数组中定义它们,因此通过匹配变量和结果的位置来完成赋值。

这是我在交互式python中尝试过的东西:

>>> # this is a grep result, btw
... foo = 'config/some.conf:12:   title = "Super Me"'
>>> [ filename, line, text ] = foo.split(':')
>>> print text
   title = "Super Me"

我喜欢这个而不是字典或数组,尤其是在for循环中工作时。它使变量名更有意义,即使是循环本地的,也可以是临时的。

胜利的可读性!

答案 1 :(得分:7)

lst = foo.split("|")
lst[0]
lst[1]
...

答案 2 :(得分:3)

你可以使用字典:

In [29]: strs="foo|bar|spam|eggs"

In [31]: d=dict(("var{0}".format(i),x) for i,x in enumerate(strs.split("|")))

In [32]: d
Out[32]: {'var0': 'foo', 'var1': 'bar', 'var2': 'spam', 'var3': 'eggs'}

In [33]: d['var1']
Out[33]: 'bar'

In [34]: d['var2']
Out[34]: 'spam'

答案 3 :(得分:2)

使用list存储获得的令牌: -

>>> my_str = "Python|Splitting|the|string"
>>> my_tokens = my_str.split("|")
>>>
>>> my_tokens
['Python', 'Splitting', 'the', 'string']
>>> my_token[0]
'Python'

答案 4 :(得分:0)

这可能对您有帮助:

strings = "python,splitting,the,string"

var1,var2,var3,var4 = [str(i) for i in strings.split(",")]