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 ORM框架SQLAlchemy学习笔记之关系映射实例
Jun 10 Python
Python调用命令行进度条的方法
May 05 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
Nov 20 Python
python利用正则表达式提取字符串
Dec 08 Python
Python实现字典的遍历与排序功能示例
Dec 23 Python
用pandas中的DataFrame时选取行或列的方法
Jul 11 Python
Python神奇的内置函数locals的实例讲解
Feb 22 Python
selenium+Chrome滑动验证码破解二(某某网站)
Dec 17 Python
Python实现大数据收集至excel的思路详解
Jan 03 Python
使用Python求解带约束的最优化问题详解
Feb 11 Python
python实现数字炸弹游戏
Jul 17 Python
python实现马丁策略回测3000只股票的实例代码
Jan 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
利用curl 多线程 模拟 并发的详解
2013/06/14 PHP
php读取纯真ip数据库使用示例
2014/01/26 PHP
php分页代码学习示例分享
2014/02/20 PHP
使用jQuery的ajax功能实现的RSS Reader 代码
2009/09/03 Javascript
Javascript页面添加到收藏夹的简单方法
2013/08/07 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
JavaScript 异常处理 详解
2015/02/06 Javascript
多个jQuery版本共存的处理方案
2015/03/17 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
2017/12/21 Javascript
vue.js配合$.post从后台获取数据简单demo分享
2018/08/11 Javascript
jQuery实现弹幕特效
2019/11/29 jQuery
详解JavaScript自定义函数
2020/07/29 Javascript
详解Python设计模式编程中观察者模式与策略模式的运用
2016/03/02 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Python使用pyodbc访问数据库操作方法详解
2018/07/05 Python
使用Python实现将list中的每一项的首字母大写
2019/06/11 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
python实现简单的tcp 文件下载
2020/09/16 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
英国剑桥包中文官网:The Cambridge Satchel Company中国
2018/11/06 全球购物
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
韩语专业本科生求职信
2013/10/01 职场文书
大学生四年生活自我鉴定
2013/11/21 职场文书
社会公德演讲稿
2014/05/20 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
2015年三八妇女节活动总结
2015/02/06 职场文书
水电工岗位职责
2015/02/14 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers