zoukankan      html  css  js  c++  java
  • 迭代器和生成器

    迭代器

    # x='hello'
    # # print(dir(x))
    # iter_test=x.__iter__()
    #
    # print(iter_test)
    # print(iter_test.__next__())
    # print(iter_test.__next__())
    # print(iter_test.__next__())
    # print(iter_test.__next__())
    # print(iter_test.__next__())
    # print(iter_test.__next__())
    
    # l=[1,2,3]
    # for i in l:  #i_l=l.__iter_()  i_l.__next__()
    #     print(i)
    
    # index=0
    # while index < len(l):
    #     print(l[index])
    #     index+=1
    
    
    # iter_l=l.__iter__() #遵循迭代器协议,生成可迭代对象
    # print(iter_l.__next__())
    # print(iter_l.__next__())
    #
    # for i in l:
    #     print(i)
    
    s={1,2,3}
    
    # for i in s:
    #     print(i)
    # iter_s=s.__iter__()
    # print(iter_s)
    # print(iter_s.__next__())
    # print(iter_s.__next__())
    # print(iter_s.__next__())
    # print(iter_s.__next__())
    
    # dic={'a':1,'b':2}
    # iter_d=dic.__iter__()
    # print(iter_d.__next__())
    
    # f=open('test.txt','r+')
    # # for i in f:
    # iter_f=f.__iter__()
    # print(iter_f)
    # print(iter_f.__next__(),end='')
    # print(iter_f.__next__(),end='')
    # l=[1,2,3,4,5]
    # diedai_l=l.__iter__()
    # while True:
    #     try:
    #         print(diedai_l.__next__())
    #     except StopIteration:
    #         # print('迭代完毕了,循环终止了')
    #         break
    
    l=['die','erzi','sunzi','chongsunzi']
    
    iter_l=l.__iter__()
    print(iter_l)
    # print(iter_l.__next__())
    # print(iter_l.__next__())
    # print(iter_l.__next__())
    # print(iter_l.__next__())
    # print(iter_l.__next__())
    # print(next(iter_l)) #next()---->iter_l.__next__()

     生成器

    def test():
        yield 1
        yield 2
        yield 3
    g=test()
    print('来自函数',g)
    # print(g.__next__())
    # print(g.__next__())
    
    #三元表达式
    # name='alex'
    # name='linhaifeng'
    # res='SB' if name == 'alex' else '帅哥'
    # print(res)
    
    
    #列表解析
    # egg_list=[]
    # for i in range(10):
    #     egg_list.append('鸡蛋%s' %i)
    # print(egg_list)
    
    l=['鸡蛋%s' %i for i in range(10)]
    # l1=['鸡蛋%s' %i for i in range(10) if i > 5 ]
    # # l1=['鸡蛋%s' %i for i in range(10) if i > 5 else i] #没有四元表达式
    # l2=['鸡蛋%s' %i for i in range(10) if i < 5] #没有四元表达式
    
    print(l)
    # print(l1)
    # print(l2)
    
    #生成器表达式比列表解析更节省内存;
    laomuji=('鸡蛋%s' %i for i in range(10)) #生成器表达式
    print(laomuji)
    print(laomuji.__next__())
    print(laomuji.__next__())
    print(next(laomuji))
    print(next(laomuji))
    print(next(laomuji))
    print(next(laomuji))
    print(next(laomuji))
    print(next(laomuji))
    print(next(laomuji))
    print(next(laomuji))
    # print(next(laomuji))
    
    l=[1,2,3,34]
    # map(func,l)
    
    # print(sum(l))
    # print(sum())
    # print(sum(i for i in range(10000000000000)))
  • 相关阅读:
    js堆和栈
    document.write的用处!
    nodejs选择JavaScript作为开发语言,是因为一般的开发语言的标准库都是带有IO模块的,并且通常这个 模块是阻塞性的,所以nodejs选择了没有自带IO模块的Javascript
    addEventListener和attachEvent的区别
    保留两位小数
    文字图片飞舞
    CSS3 2D 转换
    安装phpstudy之后发现80端口被占用
    docker 部署项目的实战操作
    性能实战第一天基础01-设计测试场景以及如何做性能测试
  • 原文地址:https://www.cnblogs.com/jiawen010/p/9664593.html
Copyright © 2011-2022 走看看