Python中的List推導

2021-03-31 08:56:29 字數 867 閱讀 3789

list推導(list ***prehension)看它的英文名就夠煩人的了,我總無法記清***prehension的正確拼寫:( 為了防止我將這一優秀的特性也忘記,還是將它通俗的描述一下吧。

官方教程中說list推導是一種建立list的簡潔方法,通常是乙個表示式跟著是乙個 for  的語句,然後是零個或多個 for 或是 if  語句。其傳回的list是乙個由在 for 及 if  語句條件下執行表示式的結果。如果結果是乙個tuple,就必須用括號"( )"括起來。

呵呵,這段解釋也同它的英文名一樣讓人不容易理解。好看看官方文件中的例子:

>>> freshfruit = ['  banana', '  loganberry ', 'passion fruit  ']

>>> [weapon.strip() for weapon in freshfruit]

['banana', 'loganberry', 'passion fruit']

呵呵,不作過多解釋,只用另一種更容易接受的方式來描述內的操作:

for weapon in freshfruit:

weapon.strip()

更複雜一些的例子:

>>> vec = [2, 4, 6]

>>> [3*x for x in vec if x > 3]

[12, 18]

與之對應的操作為:

vec = [2, 4, 6]

for x in vec:

if x>3:

3*x

呵呵,這樣就比較好理解了吧,總之一句話,list的推導是從第乙個for開始執行,將中的第乙個語句作為for的最後一條語句,並將它的結果作為將產生的list中的元素。

Python中的推導式

1.1 列表推導式介紹 python中的列表推導式可以使用非常簡潔的方法來快速生成滿足特定需求的列表,具有非常強的可讀性。另外python的內部實現對列表推導式的大量優化,可以保證很快的執行速度。1.2 列表推導式語法 表示式 for 變數 in 序列或迭代物件 1.3 列表推導式案例 下面三段 的...

python中改變list中list值的問題

l s 0,0,0 for i in range 3 l 1 1 1 print l 如上 定義乙個空list,新增元素也為list型別。本意是想改變list l中乙個值,使其結果為 0,0,0 0,1,0 0,0,0 但執行的結構下圖所示,將list l中的所有元素都改變了。為找到原因,檢視pyt...

python中字典推導與集合推導

字典推導與集合推導 字典推導與列表推導相似,它將推導出乙個字典,具體示例如下 字典推導使用大括號包圍,並且需要兩個表示式,乙個生成key,乙個生成value,兩個表示式之間使用冒號分隔,結果返回字典。若通過print 列印dict1,則輸出結果為 上述就是乙個簡單的字典推導,接下來演示稍微複雜的字典...