您的位置:首页 > 编程语言 > Python开发

Python3学习笔记:zip/map/filter 遍历问题

2019-02-15 16:54 323 查看

在学zip的时候发现一个问题,下面这段代码:

list1 = [1, 2, 3]
list2 = [4, 5, 6]

zip1 = zip(list1, list2)

for i in zip1:
print(i)

list3 = [i for i in zip1]
print(list3)

执行结果如下

(1, 4)
(2, 5)
(3, 6)
[]

第二次遍历结果为空。

在网上查了一下,先把结论记下来:
在Python2里使用zip/map/filter时,返回值的类型与传入参数的值一致,传入列表,返回值也是列表,列表可以重复遍历;
而在Python3中,zip/map/filter返回的是zip/map/filter对象,是迭代器,只能被遍历一次。如果需要重复遍历。可以使用list()转换成列表。

参考资料:Loop better: A deeper look at iteration in Python

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: