赋值中的Python星形运算符

赋值中的Python星形运算符,python,Python,在Python 3中,以下代码具有有效语法: >> *firsts, last = [1,2,3,4] 这将导致: >> firsts [1,2,3] >> last 4 很方便。但是,此语法在Python2下无效。有没有比这更好的方法来达到同样的效果: >> firsts = [1,2,3,4] >> last = firsts.pop() 这很好,但我喜欢Python3解决方案的优雅 谢谢假设您有一些项目列表l,您可以这样做:

在Python 3中,以下代码具有有效语法:

>> *firsts, last = [1,2,3,4]
这将导致:

>> firsts
[1,2,3]
>> last
4
很方便。但是,此语法在Python2下无效。有没有比这更好的方法来达到同样的效果:

>> firsts = [1,2,3,4]
>> last = firsts.pop()
这很好,但我喜欢Python3解决方案的优雅


谢谢

假设您有一些项目列表
l
,您可以这样做:

firsts, last = l[:-1], l[-1]

它不像拆包时那样整洁,但只是一行。请注意,它只适用于您可以编制索引的iterables。

我尝试过这个方法,但它似乎有效

 firsts, last = [[1,2,3],4]

Python3的优点是它可以与任何iterable。。。这个解决方案需要按范围进行索引。这就是我最后选择的。如果我们不是被迫使用Python 2,有时。。。