python的列表生成式,生成器和generator对象你了解吗
作者:我叫RT 发布时间:2022-05-15 15:10:04
标签:python,列表生成式,生成器,generator
列表生成式
可以使用列表生成式生成 列表元素。
例如:
列表还支持 if … else 与 for 循环组合的单行表达式进行初始化。
>>> example = [i*i if i%2 == 0 else 2*i for i in range(1,11)] # 1~10中,奇数*2,偶数平方
>>> print ([i for i in range(1,11)]) # 对照组,1~10
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> example
[2, 4, 6, 16, 10, 36, 14, 64, 18, 100]
当然,if … else 本就支持单行写法。
>>> a = 100
>>> if a < 100:
... print("lt 100")
... elif a == 100:
... print("eq 100")
... else:
... print("gt 100")
...
eq 100
>>>
>>> # 如果将上述if...else写为单行式
... print("lt 100") if a < 100 else print("eq 100") if a == 100 else print("gt 100")
eq 100
列表表达式初始化 dict 或 set
同时,我们也可以使用单行for初始化 set
还可以用于提取list的下标与元素,需要注意的是,如果使用 :
的key:value的形式,最终结果是dict。
generator对象
探索,是否可以类比上述,生成tuple。当我这么做的时候,结果获得一个generator类型。
简单来说返回的generator是一个可迭代对象,因此我们尝试使用 for 遍历它的时候,是可以遍历得到其所有数据的。
而这里的 可迭代对象(Iterable)主要指可以直接作用于for循环的对象(for循环本质上就是通过不断调用next()函数进行迭代)。
包括内置的(list
、tuple
、dict
、set
、str
等)和生成器(generator
)。
生成generator对象
主要有两种方法:
第一种使用
()
包裹列表生成式第二种,使用 yield 标记
示例:演示yield
这里可以通过 next() 获取内部元素
来源:https://blog.csdn.net/weixin_43919932/article/details/123469942


猜你喜欢
- 本文实例为大家分享了python人民币大小写转换的具体代码,供大家参考,具体内容如下大家应该都知道,银行打印账单有时候会跟上人民币的阿拉伯数
- 类 型描 述EmptyVariable 没有被初始化,它是数字的话,它的值就为0,如果它是字符串,那么它的值就为1N
- 使用celery在django项目中实现异步发送短信在项目的目录下创建celery_tasks用于保存celery异步任务。在celery_
- 主类别表名:Navtion_TopSubject 主键fTopID Char(36) 次类别表名:Navtion_NodeSubject 外
- python处理按钮消息的实例详解  
- 一、前言在本系列前面几篇文章中,我们分别介绍了 argparse 和 docopt 的主要功能和用法。它们各具特色,都能出色地完成命令行任务
- 推荐的国内镜像站[ 个人推荐清华大学pypi镜像站(https://mirrors.tuna.tsinghua.edu.cn/help/py
- <?php header(“Content-Type:text/html;charset=utf-8″); if (isset($_G
- pandas模块pandas是一个强大的分析结构化数据的工具集;它的使用基础是Numpy(提供高性能的矩阵运算);用于数据挖掘和数据分析,同
- 1、定义具名元组需要2个参数,第1个参数是类名,第2个参数是字段名,既可以是可迭代对象(如列表和元组),也可以是空格间隔的字符串:Card
- 1.事件简介事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理
- 摘要Beautiful Soup 是一个可以从 HTML 或 XML 格式文件中提取数据的 Python 库,他可以将HTML 或 XML
- 鼠标经过超链时的提示图层源码运行代码框<script>var oPopup = window.createPopup();fun
- 1、前言通常,我们在开发过程中,难免需要去部署我们的服务,但是,我们应该如何去做呢?如果主机重启了,服务怎么自己启动呢?可能你的心里已经有了
- 如何在ADO服务器端利用好缓存技术?请看下面示例,这是一个用来显示图书分类的例子程序:displayBooks.asp< %
- 在互联网出现之前,“抄”很不方便,一是“源”少,而是发布渠道少;而在互联网出现之后,“抄”变得很简单,铺天盖地的“源”源源不断,发布渠道也数
- python爬虫模块Beautiful Soup简介简单来说,Beautiful Soup是python的一个库,最主要的功能是从网页抓取数
- 近日在做门户的用户评论时,好长时间没有用jquery了正好用一下,没想到偷工用了post方法去处理ajax回调的json数据,死活取不到,后
- #1042 - Can't get hostname for your address 使用IP链接或域名链接都可能遇到
- ---在仓储管理中经常会碰到的一个问题 一、关于LIFO与FIFO的简单说明 ---FIFO: First in, First out.先进