【问题标题】:How to unpack list into two variables in python2.xpython2.x中如何将list解压成两个变量
【发布时间】:2013-11-25 08:57:15
【问题描述】:
我想把一个函数的返回解包成:
第一个变量总是由第一个返回值设置
第二个变量用于存储任何超出的返回值
为此,我让这段代码在 python3.x 下运行。我怎样才能使它适用于 python 2.x(至少是 python2.6)?
a,*b = ['a','b','c']
编辑:这也适用于:
a,*b = ['a']
【问题讨论】:
标签:
python
syntax
backwards-compatibility
【解决方案1】:
在 Python 2.7 中没有直接的方法可以做到这一点,相反,您可以创建一个没有第一个元素和第一个元素的新列表,并将它们解压缩到相应的变量中。
data = ['a','b','c']
a, b = data[0], data[1:]
print a, b
输出
a ['b', 'c']
即使 RHS 只有一个元素,此解决方案仍然有效
data = ['a']
a, b = data[0], data[1:]
print a, b
输出
a []
【解决方案2】:
使用切片:
>>> lis = ['a','b','c']
>>> a, b = lis[0], lis[1:]
>>> a
'a'
>>> b
['b', 'c']