当你运行这个时:
a,b = [(i,i+1) for i in range(5)] # wrapped i, i+1 in parentheses (syntax error)
它创建一个包含五个两项元组的列表,如下所示:
[(0, 1), (1, 2), (2, 3), (3, 4), (4, 5)]
但是您试图将这五个元组仅分配给两个对象(a
and b
)
在中使用参数解包 (*)zip http://docs.python.org/2/library/functions.html#zip,您可以将输出“解压缩”到第一个和第二个元素each tuple:
a,b = zip(*[(i,i+1) for i in range(5)])
这是哪个:
[(0, 1, 2, 3, 4), (1, 2, 3, 4, 5)]
并且可以分配给a
and b
正如你所写的