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使用os模块的os.walk遍历文件夹示例
Jan 27 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
Python3爬虫学习之将爬取的信息保存到本地的方法详解
Dec 12 Python
python实现彩色图转换成灰度图
Jan 15 Python
Pytorch 实现自定义参数层的例子
Aug 17 Python
python multiprocessing多进程变量共享与加锁的实现
Oct 02 Python
浅析matlab中imadjust函数
Feb 27 Python
windows上彻底删除jupyter notebook的实现
Apr 13 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
python使用yaml 管理selenium元素的示例
Dec 01 Python
python函数指定默认值的实例讲解
Mar 29 Python
解决Django transaction进行事务管理踩过的坑
Apr 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
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
在同一窗体中使用PHP来处理多个提交任务
2008/05/08 PHP
PHP用mysql数据库存储session的代码
2010/03/05 PHP
php中单个数据库字段多列显示(单字段分页、横向输出)
2014/07/28 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
PHP标准库(PHP SPL)详解
2019/03/16 PHP
DOM精简教程
2006/10/03 Javascript
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
Jquery选择子控件&quot;大于号&quot;和&quot; &quot;区别介绍及使用示例
2013/06/25 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
JavaScript事件委托实例分析
2015/05/26 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
简单谈谈Vue 模板各类数据绑定
2016/09/25 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
Python实现全角半角转换的方法
2014/08/18 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
python文件的md5加密方法
2016/04/06 Python
在Python程序员面试中被问的最多的10道题
2017/12/05 Python
Python hashlib模块用法实例分析
2018/06/12 Python
对Python Pexpect 模块的使用说明详解
2019/02/14 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
Python facenet进行人脸识别测试过程解析
2019/08/16 Python
5分钟让你掌握css3阴影、倒影、渐变小技巧(小编推荐)
2016/08/15 HTML / CSS
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
岗位竞聘演讲稿
2014/01/10 职场文书
初三政治教学反思
2014/01/30 职场文书
老公爱的承诺书
2014/03/31 职场文书
需求分析说明书
2014/05/09 职场文书
2014法院四风问题对照检查材料思想汇报
2014/10/04 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书