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实现检测服务器是否可以ping通的2种方法
Jan 01 Python
python通过函数属性实现全局变量的方法
May 16 Python
python编程开发之日期操作实例分析
Nov 13 Python
python虚拟环境virtualenv的使用教程
Oct 20 Python
python中的tcp示例详解
Dec 09 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
Jun 14 Python
Python threading的使用方法解析
Aug 28 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
在tensorflow中实现去除不足一个batch的数据
Jan 20 Python
Python 实现图片转字符画的示例(静态图片,gif皆可)
Nov 05 Python
pytest进阶教程之fixture函数详解
Mar 29 Python
Python标准库pathlib操作目录和文件
Nov 20 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
使用PHP和XSL stylesheets转换XML文档
2006/10/09 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
Javascript 入门基础学习
2010/03/10 Javascript
非jQuery实现照片散落桌子上,单击放大的LightBox效果
2014/11/28 Javascript
JavaScript中使用Callback控制流程介绍
2015/03/16 Javascript
在Javascript中处理数组之toSource()方法的使用
2015/06/09 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
纯javaScript、jQuery实现个性化图片轮播【推荐】
2017/01/08 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
JS实现页面内跳转的简单代码
2017/09/03 Javascript
js获取文件里面的所有文件名(实例)
2017/10/17 Javascript
Sublime Text新建.vue模板并高亮(图文教程)
2017/10/26 Javascript
vue 之 .sync 修饰符示例详解
2018/04/21 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
vue动态添加路由addRoutes之不能将动态路由存入缓存的解决
2019/02/19 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
2019/02/21 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
2019/03/19 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
Python随机生成手机号、数字的方法详解
2017/07/21 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
Python学生信息管理系统修改版
2018/03/13 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
Python3将jpg转为pdf文件的方法示例
2019/12/13 Python
python实现滑雪游戏
2020/02/22 Python
Python列表如何更新值
2020/05/27 Python
python实现在线翻译
2020/06/18 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
会计专业毕业生推荐信
2013/11/05 职场文书
班级文化标语
2014/06/23 职场文书
2014年售票员工作总结
2014/11/19 职场文书
部队2015年终工作总结
2015/04/02 职场文书
民间借贷借条如何写
2015/05/26 职场文书
七夕情人节问候语
2015/11/11 职场文书