为了账号安全,请及时绑定邮箱和手机立即绑定

Python中的zip列表

Python中的zip列表

守候你守候我 2019-07-06 16:37:42
Python中的zip列表我正在努力学习如何“拉链”列表。为此,我有一个程序,在特定的时刻,我做以下工作:x1, x2, x3 = stuff.calculations(withdataa)这给了我三份清单,x1, x2,和x3,比方说,20码。现在,我知道:zipall = zip(x1, x2, x3)然而,当我这样做时:print "len of zipall %s" % len(zipall)我得到20,这不是我所期望的。我以为会有三个。我认为我做了一些根本错误的事情。
查看完整描述

3 回答

?
慕莱坞森

TA贡献1810条经验 获得超4个赞

当你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

当然,如果列表一开始是空的,这是行不通的。


查看完整回答
反对 回复 2019-07-06
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

在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))


查看完整回答
反对 回复 2019-07-06
  • 3 回答
  • 0 关注
  • 789 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信