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

浙公网安备 33010602011771号