List comprehension(列表示推導)是一種可以讓程式碼更簡潔,增加可讀性與執行效率的方法。
可以將很多行的for迴圈縮在短短一行之內,很方便!
1.
假如我們現在有一個list–l1
1
|
|
若我們想要建立一個新表單l2,是把l1中的每一個元素加上二,最先想到的寫法是:
1 2 3 |
|
知道怎麼用List comprehension的話,我們可以用列表示:
1
|
|
這樣看起來就簡潔多了!
2.
我們也可以把if條件判斷也寫進去。
例如,想要把l1中可以被3整除的數抓出來,存到l2
1 2 3 4 |
|
用List comprehension來簡化,可以變成:
1
|
|
3.
超過一個以上的list也可以使用List comprehension,例如,兩個list
1 2 |
|
如果我們要產生一個新的list–z是以每個x和每個y的元素的值為座標。
1 2 3 4 |
|
這可以簡化成:
1
|
|
4.
其實List comprehension不只可以用在list,也可以用在dictionary上。
有一個list–z1如下。
1
|
|
例如我們想把z1改成dictionary–z2,像這樣:
1 2 3 |
|
可以簡化成:
1
|
|
結語:
總之List comprehension可以大幅減少程式碼的行數。
其實,還有其他種方法,也可以讓程式碼更簡潔,例如map,filter和reduce,下一回我會提到。
想要看看更多有關於List comprehension可以到:
http://docs.python.org/2/tutorial/datastructures.html#list-comprehensions