python 3列表推導式的的一點理解!


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,然后再用元組的定義生成一個列表。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM