# -*- encoding: utf-8 -*-
import os
'''
第11条: 用zip函数同时遍历两个迭代器
关键:
1 zip方法
作用: 把两个或两个以上的迭代器封装为生成器,可以稍后求值
zip生成器会从每个迭代器中获取当前迭代器的下一个值,然后把值汇聚成元组
2 注意点
python 2中的zip会把迭代器产生的值汇聚成元组,并把元组组成的列表返回。所以不是zip迭代器
带来内存问题,使用itertools中的izip函数
zip中只要有一个迭代器运行完成,就不会产生元组了
3 总结
zip可以将平行遍历多个迭代器,python 2请用itertools.izip, python 3用zip。
参考:
Effectiv Python 编写高质量Python代码的59个有效方法
'''
def useZip(data):
lens = [len(value) for value in data]
print lens
maxLen = -1
maxValue = ""
for length, value in zip(lens, data):
if length > maxLen:
maxValue = value
maxLen = length
print "max value: {maxValue}, max length: {maxLen}".format(
maxLen=maxLen,
maxValue=maxValue
)
def process():
data = ['C++', 'Python', 'C', 'Android', 'Qt', 'Java', 'Ruby']
useZip(data)
if __name__ == "__main__":
process()
Effective Python 读书笔记: 第11条: 用zip函数同时遍历两个迭代器
猜你喜欢
转载自blog.csdn.net/qingyuanluofeng/article/details/88812291
今日推荐
周排行