python的列表生成式,生成器和generator对象你了解吗


Posted in Python onMarch 16, 2022

列表生成式

可以使用列表生成式生成 列表元素。

例如:

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]

python的列表生成式,生成器和generator对象你了解吗

当然,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

python的列表生成式,生成器和generator对象你了解吗

列表表达式初始化 dict 或 set

同时,我们也可以使用单行for初始化 set

python的列表生成式,生成器和generator对象你了解吗

还可以用于提取list的下标与元素,需要注意的是,如果使用  的key:value的形式,最终结果是dict。

python的列表生成式,生成器和generator对象你了解吗

generator对象

探索,是否可以类比上述,生成tuple。当我这么做的时候,结果获得一个generator类型。

python的列表生成式,生成器和generator对象你了解吗

简单来说返回的generator是一个可迭代对象,因此我们尝试使用 for 遍历它的时候,是可以遍历得到其所有数据的。

python的列表生成式,生成器和generator对象你了解吗

而这里的 可迭代对象(Iterable)主要指可以直接作用于for循环的对象(for循环本质上就是通过不断调用next()函数进行迭代)。

包括内置的(listtupledictsetstr等)和生成器(generator)。

生成generator对象

主要有两种方法:

  • 第一种使用 () 包裹列表生成式
  • 第二种,使用 yield 标记

示例:演示yield

python的列表生成式,生成器和generator对象你了解吗

这里可以通过 next() 获取内部元素

python的列表生成式,生成器和generator对象你了解吗

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注三水点靠木的更多内容!  

Python 相关文章推荐
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 Python
Python实现拷贝多个文件到同一目录的方法
Sep 19 Python
windows下安装Python和pip终极图文教程
Mar 05 Python
python实现图书馆研习室自动预约功能
Apr 27 Python
python判断输入日期为第几天的实例
Nov 13 Python
python仿抖音表白神器
Apr 08 Python
解决tensorflow由于未初始化变量而导致的错误问题
Jan 06 Python
django 文件上传功能的相关实例代码(简单易懂)
Jan 22 Python
python实现扫雷小游戏
Apr 24 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
快速了解Python开发环境Spyder
Jun 29 Python
python里反向传播算法详解
Nov 22 Python
bat批处理之字符串操作的实现
Mar 16 #Python
一起来学习Python的元组和列表
Mar 13 #Python
python自动化测试之Selenium详解
python数字类型和占位符详情
Mar 13 #Python
Python+Selenium自动化环境搭建与操作基础详解
Python+Selenium实现读取网易邮箱验证码
Mar 13 #Python
asyncio异步编程之Task对象详解
Mar 13 #Python
You might like
深入分析php中接口与抽象类的区别
2013/06/08 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
快速解决PHP调用Word组件DCOM权限的问题
2017/12/27 PHP
jquery 锁定弹出层实现代码
2010/02/23 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
如何使用JS获取IE上传文件路径(IE7,8)
2013/07/08 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
嵌入式iframe子页面与父页面js通信的方法
2015/01/20 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
jQuery实现点击表格单元格就可以编辑内容的方法【测试可用】
2016/08/01 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
JavaScript仿百度图片浏览效果
2016/11/23 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
jquery实现页面加载效果
2017/02/21 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
教你完全理解ReentrantLock重入锁
2019/06/03 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
小程序实现背景音乐播放和暂停
2020/06/19 Javascript
Jquery+javascript实现支付网页数字键盘
2020/12/21 jQuery
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
Python给图像添加噪声具体操作
2019/03/03 Python
python适合人工智能的理由和优势
2019/06/28 Python
pandas实现to_sql将DataFrame保存到数据库中
2019/07/03 Python
dpn网络的pytorch实现方式
2020/01/14 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
英语专业学子个人的自我评价
2013/10/02 职场文书
致垒球运动员加油稿
2014/02/16 职场文书
《一本男孩子必读的书》教学反思
2014/02/19 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
局机关干部群众路线个人对照检查材料思想汇报
2014/10/05 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL