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高效编程技巧
Jan 07 Python
python del()函数用法
Mar 24 Python
python使用rsa加密算法模块模拟新浪微博登录
Jan 22 Python
Python的Django框架中forms表单类的使用方法详解
Jun 21 Python
Python3读取Excel数据存入MySQL的方法
May 04 Python
Python简单实现网页内容抓取功能示例
Jun 07 Python
python 的 scapy库,实现网卡收发包的例子
Jul 23 Python
Python如何使用argparse模块处理命令行参数
Dec 11 Python
python实现拼接图片
Mar 23 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
Mar 30 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
python Tkinter模块使用方法详解
Apr 07 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大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
PHP上传文件时自动分配路径的方法
2015/01/09 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
js身份证验证超强脚本
2008/10/26 Javascript
JavaScript 字符编码规则
2009/05/04 Javascript
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
js word表格动态添加代码
2010/06/07 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
JavaScript仿商城实现图片广告轮播实例代码
2016/02/06 Javascript
简单掌握JavaScript中const声明常量与变量的用法
2016/05/21 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
Vue项目中使用Vux的安装过程
2018/05/01 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
js实现鼠标拖拽缩放div实例代码
2019/03/25 Javascript
浅谈Node 异步IO和事件循环
2019/05/05 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
[02:26]DOTA2英雄米拉娜基础教程
2013/11/25 DOTA
Python itertools模块详解
2015/05/09 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
pycharm远程调试openstack代码
2017/11/21 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
书香家庭事迹材料
2014/05/09 职场文书
安全生产宣传标语
2014/06/06 职场文书
优秀护士事迹材料
2014/12/25 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
无线电通信名词解释
2022/02/18 无线电
java开发双人五子棋游戏
2022/05/06 Java/Android