Python列表推导式与生成器表达式用法示例
作者:Rangethan 时间:2023-05-31 01:30:40
本文实例讲述了Python列表推导式与生成器表达式用法。分享给大家供大家参考,具体如下:
和列表一样,列表推导式也采用方括号[]表示,并且用到了一个简写版的for循环,第一部分是一个生成结果列表元素的表达式,第二部分是一个输入表达式上的循环。阅读理解列表表达式的推荐做法是先从里面的for循环开始,向右查看是否有if条件,然后将推导式开始的那个表达式映射到每一个匹配的元素上去。
>>> even_numbers = [x for x in range(10) if x%2 == 0]
>>> even_numbers
[0,2,4,6,8]
以上例子展示了使用if语句来过滤元素。
Python还支持另外一种和列表表达式类似的结构,叫做生成器表达式(generator expression),除了它有一种称之为“惰性计算”的特点以外,它和列表推导式的用法基本一致。它的工作方式是每次处理一个对象,而不是一口气处理和构造整个数据结构,这样做的潜在优点是可以节省大量的内存。
>>> even_numbers = (x for x in range(10000) if x%2 == 0)
>>> even_numbers
<generator object at 0x....>
在处理大量的数据是,最好考虑生成器表达式而不是列表推导式。
另一个列表推导式和生成器表达式的例子是:
>>> data = ['abc','def','I use python', 'hong201']
>>> sum([len(word) for word in data])
25
>>> sum(len(word) for word in data)
25
enumerate()
是一个同时能让你迭代和计数的内置函数,而for循环自身只能迭代而没办法计数:
>>> data = [123,"abc",3.14]
>>> for i in enumerate(data):
... print i
...
(0, 123)
(1, 'abc')
(2, 3.14)
希望本文所述对大家Python程序设计有所帮助。
来源:http://blog.csdn.net/Ethan706/article/details/40393429
标签:Python,列表推导式,生成器表达式
0
投稿
猜你喜欢
asp单主键高效通用分页存储过程
2009-02-23 19:21:00
详解如何让Express支持async/await
2024-05-03 15:36:12
将HTML自动转为JS代码
2010-03-17 20:49:00
Python封装解构以及丢弃变量
2022-08-10 07:55:58
Pytorch如何把Tensor转化成图像可视化
2021-11-03 20:20:22
通过MySQL内置全文检索实现中文的相关检索
2010-06-11 13:20:00
MySQL防止delete命令删除数据的两种方法
2024-01-13 10:18:41
vue中实现拖动调整左右两侧div的宽度的示例代码
2024-04-27 16:02:36
解析SQL Server CDC配合Kafka Connect监听数据变化的问题
2024-01-22 11:22:45
Python使用Selenium模拟浏览器自动操作功能
2021-01-19 07:55:33
Python网络编程详解
2022-01-09 15:25:10
仿6room网站图片链接效果
2007-06-21 13:59:00
laravel yajra插件 datatable的使用详解
2023-11-18 20:05:06
JavaScript观察者模式原理与用法实例详解
2024-04-19 10:02:48
javascript 数组(list)添加/删除的实现
2024-04-17 10:37:25
JavaScript/TypeScript中==和===的区别详解
2024-04-25 13:14:39
在网页中显示可拖动月历
2010-07-13 12:09:00
从理论角度讨论JavaScript闭包
2024-03-29 06:46:46
python进阶教程之文本文件的读取和写入
2023-08-03 03:27:47
t-sql/mssql用命令行导入数据脚本的SQL语句示例
2024-01-21 16:15:42