小编典典

Python 中的 Zip 列表

all

我正在尝试学习如何“压缩”列表。为此,我有一个程序,在某个特定点,我执行以下操作:

x1, x2, x3 = stuff.calculations(withdataa)

这给了我三个列表,x1x2x3,每个列表,例如,大小为 20。

现在,我这样做:

zipall = zip(x1, x2, x3)

但是,当我这样做时:

print "len of zipall %s" % len(zipall)

我得到了 20,这不是我所期望的。我预计三个。我认为我做的事情根本上是错误的。


阅读 101

收藏
2022-08-07

共1个答案

小编典典

当您zip()将三个列表组合在一起时,每个列表包含 20 个元素,结果有 20 个元素。每个元素都是一个三元组。

你自己看:

In [1]: a = b = c = range(20)

In [2]: zip(a, b, c)
Out[2]: 
[(0, 0, 0),
 (1, 1, 1),
 ...
 (17, 17, 17),
 (18, 18, 18),
 (19, 19, 19)]

要找出每个元组包含多少个元素,您可以检查第一个元素的长度:

In [3]: result = zip(a, b, c)

In [4]: len(result[0])
Out[4]: 3

当然,如果列表一开始是空的,这将不起作用。

2022-08-07