• python全栈开发 * 14 知识点汇总 * 180530


     14 生成器表达式 内置函数
    # 一.迭代器 (补充)
    # 1.如何判断迭代对象,迭代器
    # (1).dir(obj)检测对象有没有iter方法,然后it=obj.__iter__() 获取迭代器 , it.__next__() 获取元素.
    s="我一定能学会一门计算机语言"
    print(dir(s)) # 可以检测字符串有没有iter() 方法
    it=s.__iter__() # 获取迭代器
    print(it.__next__()) # 获取元素
    print(it.__next__())
    #(2).引入模块
    from collections import Iterable #(str,list,dict,tuple,set)
    print(isinstance(s,Iterable)) # 结果是True 是可迭代对象
    print(isinstance(s,Iterable)) # 结果是True 是迭代器
    #二.构建生成器的方法:
    # 1.生成器函数 有yield
    # 2.生成器表达式
    #三.生成器表达式
    # 1.循环模式
    # ( 变量 (加工后的变量) for 变量 in iterable )
    l2 = [i for i in range(1, 14)] #列表推导式
    print(l2)
    gen_obj = (i for i in range(1, 14)) #生成器表达式
    print(gen_obj)
    print(gen_obj.__next__()) #取值
    #加工后的变量
    l1=["python%s期" %i for i in range(1,14)] #列表推导式
    print(l1)
    gen_obj1=("python%s期" %i for i in range(1,14)) #生成器表达式
    print(gen_obj1.__next__()) #取值
    # 列表推导式的优点:
    #1.节省代码;
    #2.比较高大上
    # 缺点: 不好排错.
    #整体评价:
    # 凡是用列表推导构造的对象,用其他方式都可以构建.非常复杂列表,列表推导式构建不出来.
    # 2.筛选模式
    #( 变量 (加工后的变量) for 变量 in iterable if 条件 )
    # (1)10以内所有数的平方
    gen_ob = (i**2 for i in range(11))
    print(gen_ob.__next__()) #0
    print(gen_ob.__next__()) #1
    print(gen_ob.__next__()) #4
    #(2)30以内所有能被3整除的数的平方
    gen_ob1=(i**2 for i in range(31) if i % 3 == 0)
    print(gen_ob1.__next__())
    print(gen_ob1.__next__())
    print(gen_ob1.__next__())
    print(gen_ob1.__next__())
    #(3)100 以内所有的奇数.
    #方法一
    gen_ob3=(i for i in range(1,101,2))
    print(gen_ob3.__next__())
    print(gen_ob3.__next__())
    print(gen_ob3.__next__())
    print(gen_ob3.__next__())
    #方法二
    gen_ob4=(i for i in range(101) if i % 2 == 1)
    print(gen_ob4.__next__())
    print(gen_ob4.__next__())
    print(gen_ob4.__next__())
    print(gen_ob4.__next__())
    #获取全部的值:
    for i in gen_ob4:
    print(i)
  • 相关阅读:
    Linux_Rsync远程同步备份服务器
    Linux_Rsync远程同步备份服务器
    Linux_VMWare12 Install RHEL7
    Linux_VMWare12 Install RHEL7
    Linux_SquidProxyServer代理服务器
    Linux_SquidProxyServer代理服务器
    Linux_LAMP 最强大的动态网站解决方案
    Ozone Native ACL的应用
    Ozone Audit Log解析工具的应用
    Ozone数据探查服务Recon2.0设计
  • 原文地址:https://www.cnblogs.com/J-7-H-2-F-7/p/9204140.html
Copyright © 2020-2023  润新知