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之for循环语句
Oct 02 Python
简单介绍Python的Django框架加载模版的方式
Jul 20 Python
利用Tkinter(python3.6)实现一个简单计算器
Dec 21 Python
python初学之用户登录的实现过程(实例讲解)
Dec 23 Python
Python 调用 Windows API COM 新法
Aug 22 Python
Python实现朴素贝叶斯的学习与分类过程解析
Aug 24 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
Feb 20 Python
jupyter notebook参数化运行python方式
Apr 10 Python
Python接口测试文件上传实例解析
May 22 Python
python不到50行代码完成了多张excel合并的实现示例
May 28 Python
python通配符之glob模块的使用详解
Apr 24 Python
Python+Matplotlib+LaTeX玩转数学公式
Feb 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中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
php中用socket模拟http中post或者get提交数据的示例代码
2013/08/08 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
PHP基于socket实现客户端和服务端通讯功能
2017/07/13 PHP
img的onload的另类用法
2008/01/10 Javascript
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
fastclick插件导致日期(input[type=&quot;date&quot;])控件无法被触发该如何解决
2015/11/09 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
2016/01/28 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
写jQuery插件时的注意点
2017/02/20 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
Vue修改mint-ui默认样式的方法
2018/02/03 Javascript
Vue之beforeEach非登录不能访问的实现(代码亲测)
2019/07/18 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
vue中监听返回键问题
2019/08/28 Javascript
swiper实现异形轮播效果
2019/11/28 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
使用graphics.py实现2048小游戏
2015/03/10 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
2014/03/30 面试题
毕业生怎样写好自荐信
2013/11/11 职场文书
鸟的天堂导游词
2015/01/31 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
python+opencv实现目标跟踪过程
2022/06/21 Python