python 3列表推導式的的一點理解!
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,然后再用元組的定義生成一個列表。