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 相关文章推荐
ssh批量登录并执行命令的python实现代码
May 25 Python
详解Django中Request对象的相关用法
Jul 17 Python
python的pdb调试命令的命令整理及实例
Jul 12 Python
padas 生成excel 增加sheet表的实例
Dec 11 Python
Python 3.x基于Xml数据的Http请求方法
Dec 28 Python
解决pycharm工程启动卡住没反应的问题
Jan 19 Python
numpy基础教程之np.linalg
Feb 12 Python
PyCharm 2019.3发布增加了新功能一览
Dec 08 Python
Python Flask上下文管理机制实例解析
Mar 16 Python
Python无头爬虫下载文件的实现
Apr 02 Python
从python读取sql的实例方法
Jul 21 Python
解决PyCharm无法使用lxml库的问题(图解)
Dec 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
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
php class类的用法详细总结
2013/10/17 PHP
PHP二维数组排序简单实现方法
2016/02/14 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
jquery 获取json数据实现代码
2009/04/27 Javascript
jQuery 第二课 操作包装集元素代码
2010/03/14 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
jquery 鼠标滑动显示详情应用示例
2014/01/24 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
JQuery实现表格动态增加行并对新行添加事件
2014/07/30 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
Jquery全屏相册插件zoomvisualizer具有调节放大与缩小功能
2015/11/02 Javascript
使用jquery提交form表单并自定义action的方法
2016/05/25 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
angular2路由之routerLinkActive指令【推荐】
2018/05/30 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
python爬虫之百度API调用方法
2017/06/11 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
python opencv摄像头的简单应用
2019/06/06 Python
Python可以用来做什么
2020/11/23 Python
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
班队活动设计方案
2014/01/30 职场文书
交通事故协议书
2014/04/15 职场文书
助理政工师申报材料
2014/06/03 职场文书
房产转让协议书(2014版)
2014/09/30 职场文书
公司合作协议范文
2014/10/01 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
2015年村党支部工作总结
2015/04/30 职场文书
JS继承最简单的理解方式
2021/03/31 Javascript