一尘不染

Python中的邮政编码列表

python

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

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

这给了我三个列表,x1x2,和x3,每一个,比方说,大小为20。

现在,我这样做:

zipall = zip(x1, x2, x3)

但是,当我这样做时:

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

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


阅读 1156

收藏
2020-02-16

共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

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

2020-02-16