例如,我有这些变量
a = [1,2]
b = [3,4]
如果我使用函数zip()
,结果将是:
[(1, 3), (2, 4)]
但我有这个清单:
a = [[1,2], [3,4]]
而且,我需要和第一个结果一样:[(1, 3), (2, 4)]
。但是,当我这样做时:
zip(a)
我明白了:
[([1, 2],), ([3, 4],)]
我该怎么办?
答案 0 :(得分:13)
zip
需要多个迭代,因此如果您将单个列表列表作为参数传递,则子列表只会被包含在元组中,每个元素都包含一个元素。
当您将列表传递给*
时,您必须使用zip
来解压缩列表。这样,您可以有效地传递两个列表,而不是一个列表列表:
>>> a = [[1,2], [3,4]]
>>> zip(*a)
[(1, 3), (2, 4)]
答案 1 :(得分:0)
只需以不同的方式拨打电话:
a = [[1,2], [3,4]]
zip(a[0], a[1])