1. 程式人生 > >Python:列表推導式

Python:列表推導式

列表推導式 分割 元組 color range 技術 執行 一次 AS

Python的列表推導式對於新手來說一般都難以理解,簡單看個例子:

[x * x for x in range(1,100)]

上面是一個很簡單的列表推導式,我的理解方式是從右往左看。

一點一點來看吧,我們先用range(1,100)生成一個叠代器對象(1-99的列表),然後再叠代這個列表的每一個對象,然後讓每個對象執行一次平方操作,最後生成一個列表。

-----------------------------分割線-----------------------------------------------------------------------------------------------------------------------------------------------------

技術分享圖片

這樣看起來可能更直觀一點。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割線~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我們還可以這麽用:

[‘the %s’ % x for x in range(1,10)]

這裏我們用到了格式化字符串%s,理解起來也是一樣的。從右往左理解:先用range()生成一個列表,然後用for in叠代每一個對象,然後把每一個對象都代入到占位符裏,最後生成一個列表。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~分割線~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[(x,y) for x in range(1,100) for y in range(1,100)]

用推導列表式生成元組,理解一下:先用range()生成一個列表,然後叠代,這個操作執行了兩次,一次是x,一次是y,然後再用元組的定義生成一個列表。

Python:列表推導式