列表產生式:List Comprehensions,是python中非常非常簡單但卻最常用的一個功能。
根據名字就能知道,列表產生式所回傳的應該是list類型,它能用最簡單、最易懂的寫法產生所需的列表。
例:我需要得到1-100這個list的所有數的平方所組成的一個list。此時可以用for迴圈:
Python程式碼
a = [] for value in range(1, 101): a.append(value * value) print(a)
此時得到的a就是1-100每個數的平方所組成的陣列。這個方法很簡單,但是使用列表生成式會比較簡單。
Python代碼
a = [value * value for value in range(1,101)] print(a)
得到的a與上一個方法中的a一摸一樣。
在 a = [value * value for value in range(1,101)] 中,value * value是一個表達式,value這個數字來自表達式後面的for循環,for循環每循環一次,就計算一次表達式,最後將for迴圈中每次迴圈的數的計算結果都保存在一個列表中。最後賦值給a。
在列表產生式中,也可以使用多次循環。例如:
Python代碼
a = [x * y for x in range(1,3) for y in range(3,5)] print(a)
產生結果為:
終端代碼
[3, 4, 6, 8]
[3, 4, 6, 8]
[3, 4, 6, 8]
[3, 4, 6, 8]
[ )為[3,4],x來自range(1,3),y來自range(3,5)
結果為:1*3, 1*4, 2*3, 2*4
此外,還可以在列表產生式中增加條件判斷:
Python代碼
a = [value * value for value in range(1, 11) if value % 2 == 0] print(a)
#結果為: