如何在Python2中处理可变长度子列表解包?
在Python3中,如果我有可变的子列表长度,我可以使用这个成语:
>>> x = [(1, 2,3,4,5), (2, 4,6), (3, 5,6,7,8,9)] >>> for i, *item in x: ... print (item) ... [2, 3, 4, 5] [4, 6] [5, 6, 7, 8, 9]
在Python2中,它是一个无效的语法:
>>> x = [(1, 2,3,4,5), (2, 4,6), (3, 5,6,7,8,9)] >>> for i, *item in x: File "", line 1 for i, *item in x: ^ SyntaxError: invalid syntax
顺便说一句,这个问题与解释最大大小为n的可变长度列表的惯用法有一点不同,其中解决方案需要固定长度的知识.
这个问题特定于解决Python2中的问题.
Python 2没有splat语法(*item
).最简单,最直观的方式是:
for row in x: i = row[0] item = row[1:]