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网络编程学习笔记(九):数据库客户端 DB-API
Jun 09 Python
浅谈python中的getattr函数 hasattr函数
Jun 14 Python
python ftp 按目录结构上传下载的实现代码
Sep 12 Python
详解Python利用random生成一个列表内的随机数
Aug 21 Python
python 三元运算符使用解析
Sep 16 Python
python中删除某个元素的方法解析
Nov 05 Python
Python生成个性签名图片获取GUI过程解析
Dec 16 Python
Python实现ATM系统
Feb 17 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
Apr 08 Python
Pycharm激活方法及详细教程(详细且实用)
May 12 Python
Python join()函数原理及使用方法
Nov 14 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 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实现的MySQL通用查询程序
2007/03/11 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
2014/06/05 PHP
浅谈php冒泡排序
2014/12/30 PHP
php实现文件预览功能
2017/05/23 PHP
写的htc的数据表格
2007/01/20 Javascript
看了就知道什么是JSON
2007/12/09 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
Vue.js bootstrap前端实现分页和排序
2017/03/10 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
vue实现图书管理系统
2020/12/29 Vue.js
使用python删除nginx缓存文件示例(python文件操作)
2014/03/26 Python
python输出当前目录下index.html文件路径的方法
2015/04/28 Python
Python中使用ElementTree解析XML示例
2015/06/02 Python
python中引用与复制用法实例分析
2015/06/04 Python
Python字符编码判断方法分析
2016/07/01 Python
Python正则表达式分组概念与用法详解
2017/06/24 Python
对python中的argv和argc使用详解
2018/12/15 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
2018/12/26 Python
python 协程中的迭代器,生成器原理及应用实例详解
2019/10/28 Python
浅谈python出错时traceback的解读
2020/07/15 Python
英国伦敦的睡衣品牌:Asceno
2019/10/06 全球购物
毕业自荐信
2013/12/16 职场文书
互联网电子商务专业毕业生求职信
2014/03/18 职场文书
股份转让协议书
2014/04/12 职场文书
投标诚信承诺书
2014/05/26 职场文书
应届生自荐信
2014/06/30 职场文书
真诚的求职信
2014/07/04 职场文书
争先创优公开承诺书
2014/08/30 职场文书
走群众路线剖析材料
2014/10/09 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python