Python—迭代器与生成器
迭代工具函数:作用是生成一个个性化的可迭代对象
zip(iter1 [,itera2,...]):返回一个zip对象,此对象用于生成一个元组,此元组的个数是由最小的可迭代对象决定,元组内容是可迭代对象iter1和iter2中元素的组合,也可能是iter1和iter2和iter2中元素的组合。
phone = [10086, 10000, 10010, 95588] name = ["中国移动", "中国电信", "中国联通"] for z in zip(phone, name): print z, type(z) d1 = dict(zip(phone, name)) d2 = dict([(10086, "中国移动"), (10000, "中国电信")]) # 模拟zip函数实现的原理 def myzip(iter1, iter2): it1 = iter(iter1) it2 = iter(iter2) while True: a = next(it1) b = next(it2) yield (a, b) phone = [10086, 10000, 10010, 95588] name = ["中国移动", "中国电信", "中国联通"] for z in myzip(phone, name): print z, type(z)
enumerate(iterable [,start]):生成带索引的枚举对象,返回的迭代类型为索引-值对(index-value)对,默认索引从0开始,也可以用start指定。enumerate(name,2)如果不加第二个参数,默认从0开始。
name = ["中国移动", "中国电信", "中国联通"] for t in enumerate(name): print t, type(t) for k, v in enumerate(name, 2): print k, v # for语句等同于while语句,while是从迭代器取值,赋值给变量 it = iter(enumerate(name, 2)) while True: try: k, n = next(it) print "序号:", k, "值:", n except: break