首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python中的Zip列表

Python中的Zip列表
EN

Stack Overflow用户
提问于 2012-12-04 22:13:00
回答 8查看 502.1K关注 0票数 176

我正在努力学习如何“压缩”列表。为此,我有一个程序,其中在特定的点上,我执行以下操作:

代码语言:javascript
复制
x1, x2, x3 = stuff.calculations(withdataa)

这给了我三个列表,x1x2x3,每个列表的大小都是20。

现在,我做到了:

代码语言:javascript
复制
zipall = zip(x1, x2, x3)

然而,当我这样做的时候:

代码语言:javascript
复制
print "len of zipall %s" % len(zipall)

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

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-12-04 22:15:12

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

你自己看一下:

代码语言:javascript
复制
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)]

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

代码语言:javascript
复制
In [3]: result = zip(a, b, c)

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

当然,如果列表一开始就是空的,那么这就不会起作用。

票数 257
EN

Stack Overflow用户

发布于 2012-12-04 22:18:26

zip有一堆像这样的列表

代码语言:javascript
复制
a: a1 a2 a3 a4 a5 a6 a7...
b: b1 b2 b3 b4 b5 b6 b7...
c: c1 c2 c3 c4 c5 c6 c7...

并将它们“压缩”到一个列表中,该列表的条目是3元组(ai, bi, ci)。想象一下从左到右水平绘制一条拉链。

票数 72
EN

Stack Overflow用户

发布于 2015-05-01 08:37:23

在Python2.7中,这可能工作得很好:

代码语言:javascript
复制
>>> a = b = c = range(20)
>>> zip(a, b, c)

但在Python3.4中应该是这样(否则,结果将类似于<zip object at 0x00000256124E7DC8>):

代码语言:javascript
复制
>>> a = b = c = range(20)
>>> list(zip(a, b, c))
票数 43
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13704860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档