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

  

  

原文地址:https://www.cnblogs.com/liuhaidon/p/11651449.html