列表推導式(又稱列表解析式)提供了一種簡明的方法來創建列表。
它的結構是在一個中括號里包含一個表達式,然后是一個for語句,然后是 0 個或多個 for 或者 if 語句。那個表達式可以是任意的,意思是你可以在列表中放入任意類型的對象。返回結果將是一個新的列表,在這個以 if 和 for 語句為上下文的表達式運行完成之后產生。
列表推導式的執行順序:各語句之間是嵌套關系,左邊第二個語句是最外層,依次往右進一層,左邊第一條語句是最后一層。
[x*y for x in range(1,5) if x > 2 for y in range(1,4) if y < 3]
他的執行順序是:
for x in range(1,5) if x > 2 for y in range(1,4) if y < 3 x*y
x=[0 for i in range(3)] #結果為[0,0,0]
#相當於:
x=[]
for i in range(3):
x.append(i)