列表解析

[expr for iter_var in iterable]

map(lambda x: x ** 2, range(6))

使用列表解析替换:

[x ** 2 for x in range(6)]

[expr for iter_var in iterable if cond_expr]

seq = [11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
filter(lambda x: x % 2, seq)

使用列表解析替换:

[x for x in seq if x % 2]

举例:
迭代一个矩阵:

[(x + 1, y + 1) for x in range(3) for y in range(5)]

统计文件中单词个数:

f = open('abc.txt', 'r')
len([word for line in f for word in line.split()])

摘自《Python核心编程》

posted @ 2015-12-16 01:17  dflyingfish  阅读(133)  评论(0)    收藏  举报