• python基础 day13 生成器,列表推导式、生成器表达式


    一、今日内容大纲
    1、生成器 :生成器的本质就是迭代器
    获取生成器的三种方式
    生成器函数:
    #生成器
    def func():
    print(1)
    print(2)
    yield 3
    yield 4
    ret = func()
    print(next(ret))
    print("_________")
    print(next(ret))
    # print(next(ret))
    """
    一个next 对应一个yield,当next比yield多时,报错
    """
    return与yield区别:
    return:一个函数中只存在一个return,,并且当遇到return时,就结束函数,并且给函数的执行者返回值
    yield:只要函数中有yield,那么它就是生成器函数,生成器函数中可以存在多个yield,一个yield对应一个next
    生成器表达式
    python内部提供的一些
    yield
    yield return
    yield from
    生成器表达式

    2、生成器表达式,列表推导式
    列表推导式:用一行代码构建一个比较复杂有规律的列表
    l1 = [i for i in range(1,11,2)]
    两种模式: 循环模式:{变量(加工后) for 变量 in interable}
    筛选模式:{变量(加工后) for 变量 in interable if 条件}
    生成器表达式:
    """
    生成器表达式
    与列表推导式写法几乎一摸一样,有筛选模式和循环模式,写法上面只有一个不同
    []——》()
    """
    # print([i**2 for i in range(1,11)]) #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    # print((i for i in range(1,11))) #<generator object <genexpr> at 0x000001E12F7D2360>
    # obj = (i for i in range(1,11))
    # for i in range(1,11):
    # print(next(obj))
    l1 = [2, 3, 4, 5, 6, 7, 8, 9, 10, "J", "Q", "K", "A"]
    l2 = [i for i in range(2,11)] + list("JQKA")
    print(l2)
    print( [i for i in range(2,11)]+["J", "Q", "K", "A"])

    """
    字典推导式
    """
    lst1 = ['测试','笨蛋','混蛋']
    lst2 = ['xixi','haha','bend']
    dic = {lst1[i] : lst2[i] for i in range(len(lst1))}
    print(dic)
    """
    集合推导式
    """
    print({i for i in range(1,100)})
    3、内置函数 |

  • 相关阅读:
    父目录权限子目录权限关系
    微信自媒体账号涉违规大规模被封
    微信支付接口申请指南
    微信公众平台开发(83) 生成带参数二维码
    百度天气预报接口
    微信支付全面开放
    公众平台商户接入(微信支付)功能申请教程
    移动互联网流量变现模式调研问卷
    天气预报接口
    微信公众平台开发(82) 天气预报
  • 原文地址:https://www.cnblogs.com/iaoyuyuyuhuanghuang/p/14192639.html
Copyright © 2020-2023  润新知