• 生成器应用及知识推广


    # def fn():
    #     print("盲僧")
    #     yield "瞎子"
    #     print("狮子狗")
    #     yield "辛巴"
    #     print("螳螂")
    #     yield "150斤的肥螳螂"
    #     print("冰晶凤凰")
    #     yield "冰鸟"
    # g=fn()
    # print(list(g))
    # print(g.__next__())
    # print(g.__next__())
    # print(g.__next__())
    # print(g.__next__())
    # def fn():
    #     lst=[]
    #     for i in range (1,146):
    #         lst.append("英雄联盟第%s位英雄"%i)
    #     return lst
    # # print(fn())
    # def gn():
    #     i=1
    #     while i<146:
    #         yield "英雄联盟第%s位英雄"%i
    #         i=i+1
    # g1=gn()
    # print(g1.__next__())
    # print(g1.__next__())
    # print(g1.__next__())
    # lst=[]
    # for i in range(1,101):
    #     lst.append(i)
    # print(lst)
    # lst=["python%s"%i for i in range(1,101)]
    # print(lst)
    # print(["python%s"%i for i in range(1,101)])
    # print(["python%s"%i for i in range(1,101)])
    
    # def fn():
    #     print(111)
    #     yield 222
    # g=fn()
    # g1=(i for i in g)
    # g2=(j for j in g1)
    # print(list(g))
    # print(list(g1))
    # print(list(g2))
    #生成器函数
    #yield与return的区别,return是返回结果停止调用;yield也是返回结果但是是分段调用
    # def fn():
    #     print(111)
    #     yield 222
    #     print(333)
    #     a=yield 444
    #     print(a)
    #     print(555)
    #     yield 666
    # g=fn()
    # print(list(g))
    # print(g.__next__())
    # print(g.__next__())
    # print(g.send(11))
    #__next__()与send的区别
    # 都是传给下一个值,但是send不能用于第一个,它可以给yield赋一个值,最后一个也不能传,会报错
    
    # 列表推导式:
    # 列表推倒式; 最终给你的是列表
    # 语法 [最终结果(变量) for 变量 in 可迭代对象]
    # lst=[i for i in range(1,101)]
    # print(lst)
    #1-100能被3整除的数
    # print([i for i in range (1,101) if i%3==0])
    # #100以内能被3整除的平方
    # print([i**2 for i in range (1,101) if i%3==0])
    # names = [['Tom', 'Billy', 'Jefferson' , 'Andrew' , 'Wesley' , 'Steven' ,
    # 'Joe'],'Alice',['Alice', 'Jill' , 'Ana', 'Wendy', 'Jennifer', 'Sherry' , 'Eva']]
    # print([name for i in names for name in i if name.count('e')>=2])
    
    # 生成器表达式:
    # g=(i for i in range(1,101))
    # print(list(g))
    # 生成器的惰性机制:
    # def func():
    #     print(111)
    #     yield  222
    # g = func()
    # g1 = (i  for i in  g)
    # g2 = (i  for i in  g1)
    #
    # print(list(g))#111  [222]
    # print(list(g1))#[]生成器的惰性机制,若不调用不执行
    # print(list(g2))#[]
    
    # 字典和集合的推导式:
    # dic={'a':'b','c':'d'}
    # # dic1={dic[key]:key for key in dic}
    # # print(dic1)
    lst=["盖伦","猴子","宝石"]
    lst1=["卡特","狐狸","ez"]
    print({lst[i]:lst1[i] for i in range (len(lst))})
    # 关于生成器的一个面试题:
    # def add(a, b):
    #     return a + b
    # def gen():
    #     for r_i in range(4):
    #          yield r_i
    # g = gen()
    #
    # for n in [2, 10]:#n存在两种取值,2或者10
    #     g = (add(n, i) for i in g)      #循环两次后n=10,g=(add(n, i) for i in (add(n, i) for i in g) )
    # print(list(g))          #n的取值为最后一次循环的值,代入得20,21,22,23
    
  • 相关阅读:
    Tomcat学习笔记(九)
    在Windows上编译最新的CURL,含有zlib,openssl
    【转】测试LibreOffice SDK 开发环境配置(Windows)
    [转]LibreOffice-SDK 开发实战:嵌入MFC-View 和 C# Winform
    C++内存分配及变长数组的动态分配
    C++ 取得系统当前时间
    C# Winform程序获取外网IP地址
    【转】让Chrome化身成为摸鱼神器,利用Chorme运行布卡漫画以及其他安卓APK应用教程
    tesseract-ocr 出现 错误 Please make sure the TESSDATA_PREFIX environment variable is set to the parent d irectory of your "tessdata" directory.解决方案
    使用adb 查询data/data下的数据库
  • 原文地址:https://www.cnblogs.com/zhangdaye/p/9329672.html
Copyright © 2020-2023  润新知