原文地址

  • 先看一个列表推导式

    l = [i for i in range(10)]
    print(l)
    # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
  • 生成器表达式

    #生成器表达式
    g1 = (i for i in range(10))
    print(g1)
    # <generator object <genexpr> at 0x00000228C7A824C8>
    for i in  g1:print(i, end=' ')
    print()
    # 0 1 2 3 4 5 6 7 8 9
    # 注意这时候生成器g1已经被用完了,就是指针已经走到了末尾,无法再__next__()了
    

    从内部语法上,生成器表达式跟列表推导式的语法是一样的,只是在外部,列表推导式使用中括号[]来接受,生成器表达式使用小括号来接收

  • 通过list()方法可以将生成器转换成列表

    g2 = (i for i in range(10, 20))
    print(g2)
    # <generator object <genexpr> at 0x00000228C7A824C8>
    print(list(g2))
    # [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
    # 注意这时候生成器g2已经被用完了,就是指针已经走到了末尾,无法再__next__()了
    

    不管怎么用,生成器都只能顺序用一次,用一圈就不能用了

  • 参考文献

    生成器,内置函数Ⅰ

Python生成器表达式相关推荐

  1. python 生成器表达式_Python中的列表理解与生成器表达式

    python 生成器表达式 The list is a collection of different types of elements and there are many ways of cre ...

  2. python 生成器表达式(构建器表达式)

    生成器函数可以简化迭代器的创建.在迭代器的基础上,只要在函数中使用 yield 语句来替代结果的输出,就变成了一个生成器函数. 生成器函数与普通函数最显著的不同就是它没有 return 语句,取而代之 ...

  3. python生成器表达式_python 生成器和生成器表达式

    1.生成器 生成器的本质就是迭代器 生成器的特点和迭代器一样.取值方式和迭代器一样(__next__(),send():给上一个yield传值) 生成器一般由生成器函数或者生成器表达式来创建 其实就是 ...

  4. [转载] Python中的解析式和生成器表达式

    参考链接: Python | 生成器表达式 解析式和生成器表达式 列表解析List Comprehension 语法 [返回值 for 元素 in 可迭代对象 if 条件]使用中括号[],内部是for ...

  5. python 生成器装饰器_对Python生成器、装饰器、递归的使用详解

    1.Python生成器表达式 1).Python生成器表达式 语法格式: (expr for iter_var in iterable) (expr for iter_var in iterable ...

  6. Python进阶3——列表解析式和生成器表达式

    列表解析式相比循环更加简介易读 abc='abcdef' codes1=[] for code in abc:codes1.append(ord(code))#返回字符对应的十进制数.codes2=[ ...

  7. Python 进阶_生成器 生成器表达式

    目录 目录 相关知识点 生成器 生成器 fab 的执行过程 生成器和迭代器的区别 生成器的优势 加强的生成器特性 生成器表达式 生成器表达式样例 小结 相关知识点 Python 进阶_迭代器 & ...

  8. python迭代器和生成器(3元运算,列表生成式,生成器表达式,生成器函数)

    1.1迭代器 什么是迭代器: 迭代器是一个可以记住遍历的位置对象 迭代器对象从集合的第一个元素元素开始访问,直到所有元素被访问完结束,迭代器只能往前不会后退. 迭代器有两个基本方法:iter ,nex ...

  9. python 三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

    一.三元表达式 语法:[成立1 if condition1 else成立2 if condition2 else ...if 成立N conditionN else 不成立] sex = 'man' ...

最新文章

  1. 初学者 | 一文读懂命名实体识别
  2. IBM Watson大裁70% 员工,撕掉了国内大批伪AI企业最后一块遮羞布!
  3. android 解决ListView点击与滑动事件冲突
  4. 7、MySQL设置日志输出方式
  5. 重磅!《Apache Flink 十大技术难点实战》发布
  6. apache ab压力测试学习
  7. Office文档模型深入---Outlook文档模型与开发实战(1)
  8. kali root默认密码_Kali Linux root 默认密码是:toor
  9. 【AI视野·今日Sound 声学论文速览 第一期】Thu, 14 Apr 2022
  10. Java枚举(用Java普通类模拟枚举的实现原理及JDK枚举API使用示例)
  11. 【体系结构】Oracle实例崩溃恢复原理
  12. 为什么我们要阅读源码?
  13. mysql 一条记录的某个字段为空,是否占用存储
  14. 软件开发中的非功能需求类型
  15. Windows10上安装VS2017社区版操作步骤
  16. VMware Workstation Pro 安装教程
  17. QT界面窗口的显示和隐藏,关闭
  18. c语言对称矩形的判定,八年级数学下册 第19章 矩形、菱形与正方形 19.1.2 矩形的判定教案 (新版)华东师大版...
  19. CCF-CSP-2015年9月-题解
  20. 网关和路由器交换机功能的有哪些不同

热门文章

  1. ARM 裸机程序学习 03 - 发送SOS信号(汇编 + C)
  2. 基于React全家桶开发「网易云音乐PC」项目实战(一)
  3. Bert最新进展,继续在NLP各领域开花结果!
  4. 【Unity VR开发窍门】如何在Unity中以VR视角捕捉游戏360度全景(三)
  5. 智能信息处理技术研讨会(天津大学)个人记录
  6. Linux进程相关命令
  7. java中常用的日期工具类
  8. window.print() 去掉页眉页脚及打印链接
  9. 游戏开发小结——在unity3d中开发类塞尔达游戏的反冲效果
  10. html显示未定义,(X)HTML中的未定义行为?