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分割和拼接字符串
Nov 01 Python
python的三目运算符和not in运算符使用示例
Mar 03 Python
Python深入学习之对象的属性
Aug 31 Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 Python
python enumerate函数的使用方法总结
Nov 15 Python
python+matplotlib实现礼盒柱状图实例代码
Jan 16 Python
pandas中apply和transform方法的性能比较及区别介绍
Oct 30 Python
大家都说好用的Python命令行库click的使用
Nov 07 Python
关于Pytorch的MNIST数据集的预处理详解
Jan 10 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
Dec 07 Python
python pyg2plot的原理知识点总结
Feb 28 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数据库操作分页类
2008/06/04 PHP
laravel 修改.htaccess文件 重定向public的解决方法
2019/10/12 PHP
IE8 原生JSON支持
2009/04/13 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
2010/04/15 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
javascript实现类似于新浪微博搜索框弹出效果的方法
2015/07/27 Javascript
Node.js实现文件上传
2016/07/05 Javascript
js微信分享API
2020/10/11 Javascript
详解ES6中的let命令
2020/04/05 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
node.js读取Excel数据(下载图片)的方法示例
2018/08/02 Javascript
vue组件挂载到全局方法的示例代码
2018/08/02 Javascript
小程序云开发实战小结
2018/10/25 Javascript
巧妙运用v-model实现父子组件传值的方法示例
2019/04/07 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
python实现杨辉三角思路
2017/07/14 Python
使用 Python 处理 JSON 格式的数据
2019/07/22 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
python 画图 图例自由定义方式
2020/04/17 Python
完美解决ARIMA模型中plot_acf画不出图的问题
2020/06/04 Python
详解利用python识别图片中的条码(pyzbar)及条码图片矫正和增强
2020/11/17 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
阿迪达斯印度官方商城:adidas India
2017/03/26 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
上海天奕面试题笔试题
2015/04/19 面试题
员工安全生产承诺书
2014/05/22 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
运动会开幕式主持词
2015/07/01 职场文书
vue实现在data里引入相对路径
2022/06/05 Vue.js