zoukankan      html  css  js  c++  java
  • 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
    

      

      

  • 相关阅读:
    <转>使用IdentifyTask查询图层属性
    转:Java+blazeds+Flex的例子 .
    转 ArcGIS Runtime 加载SHAPE数据的另一种方式动态图层 .
    序列密码之A5
    哈希函数之MD5
    DjangoRestFramework使用总结
    公钥密码之RSA
    Request Line is too large (xxxx > 4094) 问题处理
    古典密码之仿射密码
    Linux重定向
  • 原文地址:https://www.cnblogs.com/liuhaidon/p/11651449.html
Copyright © 2011-2022 走看看