列表(字典、集合)推导式(又称列表解析式)提供了一种清晰明了的方法来创建列表(字典、集合)
它的结构是在一个中括号或花括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表(字典、集合),在这个以 if 和 for 语句为上下文的表达式运行完成之后产生。
列表(字典、集合)推导式的执行顺序:各语句之间是嵌套关系,左边第二个语句是最外层,依次往右进一层,左边第一条语句是最后一层。
举例
A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))
A1 = range(10)
A2 = [i for i in A1 if i in A0]
A3 = [A0[s] for s in A0]
A4 = [i for i in A1 if i in A3]
A5 = {i:i*i for i in A1}
A6 = [[i,i*i] for i in A1]
执行顺序
A2
for i in A1:
if i in A0:
i
A3
for s in A0:
A0[s]
A4
for i in A1:
if i in A3:
i
A5
for i in A1:
i:i*i
A6
for i in A1:
[i:i*i] #报错哦,不能这样子写