zoukankan      html  css  js  c++  java
  • python生成器

    生成器
    可以视作一种数据类型,这种数据自动实现了迭代器协议(其他数据类型需要去调用自己的内置函数__iter__()生成可迭代对象),视为可迭代对象
    生成器的表现形式:
    1)生成器函数:常规函数定义,但是使用yield语句而不是return语句2
    2)生成器表达式:类似于列表推导,但是,生成器
    三元表达式

    示例
     1 # eg.1
     2 def test():
     3     yield 1
     4     yield 2
     5     yield 3
     6 
     7 
     8 # eg.2 三元表达式
     9 name = "alex"
    10 res = "SB" if name == "alex" else "linda"
    11 
    12 # eg.3  列表解析
    13 egg_list = ["第%s号蛋" % i for i in range(10)]
    14 print(egg_list)
    15 egg_list1 = ["第%s号蛋" % i for i in range(10) if i > 5]
    16 print(egg_list1)
    17 # egg_list1 = ["第%s号蛋" %i for i in range(10) if i > 5 else i] 没有四元表达式
    18 
    19 # eg.4
    20 hen = ("第%s号蛋" % i for i in range(10))
    21 print(hen)
    22 print(hen.__next__())
    23 print(hen.__next__())
    24 
    25 # eg. 5
    26 li = [1, 2, 3, 4, 5]
    27 print(sum(li))  # sum也基于iterable协议计算
    28 print(sum(i for i in range(1000)))  # 生成器表达式
    29 
    30 
    31 # eg.6 生成器函数
    32 def generator_test():
    33     for i in range(100):
    34         yield i
    35 
    36 
    37 res = generator_test()
    38 print(res)
    39 print(res.__next__())
    40 print(res.__next__())
     
  • 相关阅读:
    Mybatis plus 配置
    logback配置
    iview-ui-project-4.0 安装与配置
    Linux系统下Redis安装与配置
    Java中枚举的用法
    Mysql 查询所有课程的成绩第2名到第3名的学生信息及该课程成绩
    java 基础知识一 初识java
    docker 查看 挂载目录
    sqlserver统计所有表及表中记录数
    centos7配置禁用ipv6
  • 原文地址:https://www.cnblogs.com/latencytime/p/15685148.html
Copyright © 2011-2022 走看看