如何在python2.x中将列表解压缩为两个变量

时间:2013-11-25 08:57:15

标签: python syntax backwards-compatibility

我想将函数的返回解压缩到:

  1. 第一个变量始终由第一个返回值

  2. 设置
  3. 存储任何超出的返回值的第二个变量

  4. 为此,我将此代码在python3.x下运行。我怎么能使它适用于python 2.x(至少python2.6)?

    a,*b = ['a','b','c']
    

    修改:这也适用于:

    a,*b = ['a']
    

2 个答案:

答案 0 :(得分:1)

使用切片:

>>> lis = ['a','b','c']
>>> a, b = lis[0], lis[1:]
>>> a
'a'
>>> b
['b', 'c']

答案 1 :(得分: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 []