列表解析(推导)
来源:互联网 发布:php集成环境搭建 编辑:程序博客网 时间:2024/06/05 21:51
这是我找到并整理出来的自己易理解的知识:
优雅、清晰和务实都是python的核心价值观,如果想通过操作和处理一个序列(或其他的可迭代对象)来创建一个新的列表时可以使用列表解析( List comprehensions)和生成表达式,通过这两个操作,我们可以看到这三个观点是如何在python中和谐统一起来的。
列表解析
在需要改变列表而不是需要新建某列表时,可以使用列表解析。列表解析表达式为:
[expr for iter_var in iterable]
[expr for iter_var in iterable if cond_expr]
第一种语法:首先迭代iterable里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
第二种语法:加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
举例如下:
L= [(x+1,y+1) for x in range(3) for y in range(5)]
L
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (2, 1), (2, 2), (2, 3), (2, 4), (2, 5), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5)]
N=[x+10for x in range(10) if x>5]
N
newlist=[x+5for x in olderlist if x>10]
[16, 17, 18, 19]
一个更复杂的例子:
num = [j for i in range(2, 8) for j in range(i*2, 50, i)]
num
[4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 8, 12, 16, 20, 24, 28, 32, 36, 40, 44, 48, 10, 15, 20, 25, 30, 35, 40, 45, 12, 18, 24, 30, 36, 42, 48, 14, 21, 28, 35, 42, 49]
“`
- 列表解析(推导)
- Python列表解析(列表推导式)
- 列表推导式/列表解析笔记
- 推导式(列表的解析式)
- 列表推导(List Comprehension)
- python之列表推导式及嵌套列表解析学习
- 列表推导
- python快速入门(列表推导式)
- List Comprehensions (列表推导式)
- 列表推导、字典推导、集合推导
- python的各种推导式(列表推导式、字典推导式、集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列的结构体
- 列表推导式
- Python 列表推导
- Python 的列表推导
- python 列表推导
- 列表推导式
- python 列表推导式
- python 列表推导
- x264中的汇编:DCT变换 dct-a.asm——004
- 11.Service的使用
- 【CodeForces】616D
- JS数字精度丢失详解
- UVALive
- 列表解析(推导)
- 各种对话框的实现(文字对话框,选择对话框,弹出输入对话框,单选,多选对话框,自定义对话框)
- hadoop安装时容易出现的错误
- HEVC中需要汇编优化的关键耗时函数——005
- 我对Java+Oracle数据库编程(JDBC)的理解与核心内容分析
- 一些基本的调试技巧--C语言(二)
- 002 Python前端之CSS基础
- 一个关于invalidateOptionsMenu方法的小问题
- Maven 支撑下的War应用依赖另外一个WAR应用的解决方案