列表產生式:List Comprehensions,是python中非常非常簡單但卻最常用的一個功能。
根據名字就能知道,列表產生式所回傳的應該是list類型,它能用最簡單、最易懂的寫法產生所需的列表。
例:我需要得到1-100這個list的所有數的平方所組成的一個list。此時可用for循環:
Python代碼
a = []
for value in range(1,
print(a)
此時得到的a就是1-100中每個數的平方所組成的數組。這個方法很簡單,但是使用列表生成式會比較簡單。
Python代碼
a = [value * value for value in range(1,101)]
print(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,55)
終端代碼
[3, 4, 6, 8]
range(1,3)為[1, 2],range(3,5)為[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) 36, 64, 100] 在for迴圈後面為value值增加條件選擇。此範例是計算1-10中偶數的平方