Python中的zip列表

Python中的zip列表

我正在努力学习如何“拉链”列表。为此,我有一个程序,在特定的时刻,我做以下工作:

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

这给了我三份清单,x1x2,和x3,比方说,20码。

现在,我知道:

zipall = zip(x1, x2, x3)

然而,当我这样做时:

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

我得到20,这不是我所期望的。我以为会有三个。我认为我做了一些根本错误的事情。


守候你守候我
浏览 790回答 3
3回答

慕莱坞森

当你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当然,如果列表一开始是空的,这是行不通的。

慕虎7371278

在Python2.7中,这可能运行得很好:>>> a = b = c = range(20)>>> zip(a, b, c)但是在Python3.4中应该是(否则,结果将类似于<zip object at 0x00000256124E7DC8>):>>> a = b = c = range(20)>>> list(zip(a, b, c))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python