Python解析表达式(comprehension expression)
2016-06-19 00:00
465 查看
解析表达式的形式化定义
以列表解析表达式为例
[exp for elem in iterable_object if condition]
exp #生成列表元素的表达式
elem #可迭代对象的元素
iterable_object #可迭代对象
condition #布尔表达式
上述表达式可描述为:对iterable_object 的每个元素elem,在使condition为真的条件下作用于表达式exp,所生成的对象作为解析表达式的一个元素
其他形式的解析表达式:
G = (sum(row) for row in M) # Create a generator of row sums
{sum(row) for row in M} # Create a set of row sums {24, 6, 15}
{i : sum(M[i]) for i in range(3)} # Creates key/value table of row sums {0: 6, 1: 15, 2: 24}
以列表解析表达式为例
[exp for elem in iterable_object if condition]
exp #生成列表元素的表达式
elem #可迭代对象的元素
iterable_object #可迭代对象
condition #布尔表达式
上述表达式可描述为:对iterable_object 的每个元素elem,在使condition为真的条件下作用于表达式exp,所生成的对象作为解析表达式的一个元素
M = [[1, 2, 3], # A 3 × 3 matrix, as nested lists [4, 5, 6], # Code can span lines if bracketed [7, 8, 9]] col2 = [row[1] for row in M] #[2,5,8] col2 = [row[1] for row in M if row[1] %2 ==0] #[2,8] doubles = [c * 2 for c in 'spam'] L = [elem for elem in range(4)] #range(4) is a iterable object in python 3.x
其他形式的解析表达式:
G = (sum(row) for row in M) # Create a generator of row sums
{sum(row) for row in M} # Create a set of row sums {24, 6, 15}
{i : sum(M[i]) for i in range(3)} # Creates key/value table of row sums {0: 6, 1: 15, 2: 24}
相关文章推荐
- Python字符串之Unicode
- python处理实时增量文件
- Ubuntu14.04 64位系统下安装python3.4对应的opencv3.0报错recompile with -fPIC 的解决办法
- Python 模块之os
- [lintcode the-smallest-difference]最小差(python)
- [Lintcode two-sum]两数之和(python,双指针)
- python _ underscore variable
- 【leetCode】Sum Root to Leaf Number python实现
- Python 简单爬虫实现(爬取百度百科信息)
- Python的上下文管理器
- python中的编码问题
- Python学习爬虫中遇到点问题
- 从0开始玩安全--Python篇--Python入门指导 & 案例Unixshadow密码破解
- 使用Python Pandas处理亿级数据
- 【leetCode】Path Sum II python实现
- python_day6学习笔记
- python之数据类型(二)
- [Python]垃圾回收机制
- python csv
- ubuntu上使用virtualenv建立多个python独立开发环境