首頁 >後端開發 >Python教學 >python列表產生式用法

python列表產生式用法

巴扎黑
巴扎黑原創
2016-12-03 10:17:171556瀏覽

列表產生式: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)

#結果為:  

[4, 16, 36, 64, 100]  此範例是計算1-10中偶數的平方🎜🎜🎜🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn