您的位置:首页 > 编程语言 > Python开发

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,所生成的对象作为解析表达式的一个元素

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}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: