Python列表推导式与生成器表达式用法示例
作者:Rangethan 发布时间:2023-05-31 01:30:40
标签:Python,列表推导式,生成器表达式
本文实例讲述了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


猜你喜欢
- 之前遇到过MySQL本地可以连接但是远程连不上的问题,没有记录,今天在云上新申请的服务器上又遇到这个问题,记录一下解决过程。1.排除网络或防
- Lists Snippets我们先从最常用的数据结构列表开始1.将两个列表合并成一个字典假设我们在 Python 中有两个列表,我们希望将它
- zhanglunray 问:我在mzzx_pic这个层设置了左边距,在ie里显示是正常的,但是在ff里显示时margin-left却没有起到
- 面试题:索引是什么?索引的优点?索引的缺点?在建立索引的时候都有哪些需要考虑的因素呢?为数据表建立索引的原则有哪些?什么是索引覆盖?非聚簇索
- 凯撒密码 是密码学中的一种简单的 替换加密 技术。明文中的所有字符都会替换为其按照字母表顺序向左(或向右)偏移一定量后得到的新字母,作为加密
- python time.sleep()-睡眠线程还是进程?它会阻止线程。如果查看Python源代码中的Modules / timemodul
- pycharm里边安装不上d2l包。按以下步骤操作即可成功解决。1、首先查看现在pycharm所在的环境File—>
- 就我个人经验来讲:除了oracle,没有比HP 客户支持中心更糟糕的体验了。刚买不到一个月的HP MINI笔记本,莫名其妙键盘上的引号键松动
- 废话不多说,直接上官网demopackage mainimport ("log""github.com/fsn
- VScode查看python f.write()的文件乱码在使用 VScode 编写 python 代码,print(),汉字正常显示,使用
- 1echarts的基本步骤四步1 找dom容器2 初始化Init3 配置options4 setOptions几乎124的步骤是一样的,op
- 该代码主要是基于python实现判断指定文件夹下是否存在指定后缀的文件。代码如下:import osYour_Dir='你的文件夹/
- 表结构如下:id varchar(32) info json数据:id = 1info = {&qu
- 支持Python的IDE有IPython、Aptana Studio(在Eclipse的基础上加插件集改的)、PyCharm(由 JetBr
- 遵循Web标准的思想,网页要表现出一种亲和力。那么,针对残障用户来说,其“阅读”器可不能读取图像上传递的信息的。所以我们会采用一种Using
- 异常的传递性在 Python 中,异常的传递性指的是,当一个异常没有被处理时,它会沿着调用栈向上抛出,直到被处理或者导致程序崩溃。具体来说,
- 最近用了pycharm,感觉还不错,就是pandas中Series、DataFrame的plot()方法不显示图片就给我结束了,但是我在ip
- 1、安装scikit-learn1.1Scikit-learn 依赖Python (>= 2.6 or >= 3.3),NumP
- 概述Python中的增强赋值是从C语言中借鉴出来的,所以这些格式的用法大多和C一致,本身就是对表达式的简写,即二元表达式和赋值语句的结合,比
- 每次写完的东西就忘了,下次用时还要重查资料重新写,这是今天写的一段测试代码,保留下来,记录给自已,同时分享给大家。目标:把下边的这个上传文件