Python:列表推導式
阿新 • • 發佈:2018-06-08
列表推導式 分割 元組 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:列表推導式