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 相关文章推荐
让python同时兼容python2和python3的8个技巧分享
Jul 11 Python
在Python程序中实现分布式进程的教程
Apr 28 Python
Python批量按比例缩小图片脚本分享
May 21 Python
python 垃圾收集机制的实例详解
Aug 20 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
Jun 04 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 Python
PyCharm 创建指定版本的 Django(超详图解教程)
Jun 18 Python
PyCharm中代码字体大小调整方法
Jul 29 Python
基于python+selenium的二次封装的实现
Jan 06 Python
解决Keyerror ''acc'' KeyError: ''val_acc''问题
Jun 18 Python
Python基础教程,Python入门教程(超详细)
Jun 24 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 大数据量及海量数据处理算法总结
2011/05/07 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHP registerXPathNamespace()函数讲解
2019/02/03 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
写了10年的Javascript也未必全了解的连续赋值运算
2011/03/25 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
JS日期和时间选择控件升级版(自写)
2013/08/02 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
分享js粘帖屏幕截图到web页面插件screenshot-paste
2020/08/21 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
12个非常有用的JavaScript技巧
2017/05/17 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python构造icmp echo请求和实现网络探测器功能代码分享
2014/01/10 Python
Python生成器(Generator)详解
2015/04/13 Python
Python 私有函数的实例详解
2017/09/11 Python
python微信跳一跳系列之棋子定位颜色识别
2018/02/26 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
物流司机岗位职责
2013/12/28 职场文书
乡镇庆八一活动方案
2014/02/02 职场文书
幼儿园大班开学教师寄语
2014/04/03 职场文书
助人为乐模范事迹材料
2014/06/02 职场文书
检察院对照“四风”认真查找问题落实整改措施
2014/09/26 职场文书
考研导师推荐信范文
2015/03/27 职场文书
莫言诺贝尔获奖感言(全文)
2015/07/31 职场文书
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript