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
  • asp之家 网络编程 m.aspxhome.com