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的Treq on Twisted来进行HTTP压力测试
Apr 16 Python
python删除过期文件的方法
May 29 Python
详解Python的Django框架中的Cookie相关处理
Jul 22 Python
Python入门之三角函数sin()函数实例详解
Nov 08 Python
Python实现简单遗传算法(SGA)
Jan 29 Python
python 读取txt,json和hdf5文件的实例
Jun 05 Python
python使用folium库绘制地图点击框
Sep 21 Python
Python2和Python3.6环境解决共存问题
Nov 09 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 Python
Selenium自动化测试工具使用方法汇总
Jun 12 Python
Python pip使用超时问题解决方案
Aug 03 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 和 HTML
2006/10/09 PHP
dedecms后台验证码总提示错误的解决方法
2007/03/21 PHP
php数组函数序列之array_flip() 将数组键名与值对调
2011/11/07 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
php数组添加与删除单元的常用函数实例分析
2015/02/16 PHP
[企业公众号]升级到[企业微信]之后发送消息失败的解决方法
2017/06/30 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
2017/07/10 PHP
ThinkPHP 3使用OSS的方法
2018/07/19 PHP
IE iframe的onload方法分析小结
2010/01/07 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
js中this用法实例详解
2015/05/05 Javascript
js实现汉字排序的方法
2015/07/23 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
Javascript 闭包详解及实例代码
2016/11/30 Javascript
如何快速上手Vuex
2017/02/14 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
2019/06/21 Javascript
微信小程序拼接图片链接无底洞深入探究
2019/09/03 Javascript
小程序实现长按保存图片的方法
2019/12/31 Javascript
python输入错误密码用户锁定实现方法
2017/11/27 Python
python3 enum模块的应用实例详解
2019/08/12 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
2020/02/07 Python
适合Python初学者的一些编程技巧
2020/02/12 Python
Python实现图片查找轮廓、多边形拟合、最小外接矩形代码
2020/07/14 Python
elf彩妆英国官网:e.l.f. Cosmetics英国(美国平价彩妆品牌)
2017/11/02 全球购物
施华洛世奇加拿大官网:SWAROVSKI加拿大
2018/06/03 全球购物
教师个人自我鉴定
2014/02/08 职场文书
置业顾问岗位职责
2014/03/02 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
《草船借箭》教学反思
2016/02/23 职场文书
Apache Pulsar结合Hudi构建Lakehouse方案分析
2022/03/31 Servers
教你使用Jenkins集成Harbor自动发布镜像
2022/04/03 Servers