赋值中的Python星形运算符
在Python 3中,以下代码具有有效语法:赋值中的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,您可以这样做:
>> *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,有时。。。