python學習筆記-tip22(高階特性-列表生成式)
列表生成式
故名思議,就是建立list的生成式,通過這個「列表生成式」可以得到一個list
那麼我們沒有用 「列表生成式」的之前,我們會使用比較笨的方法去建立list,如
nums=[1,2,3,4,5,6]
或者通過range
nums=list(range(6))
除了這兩種方法之外,好像沒有別的辦法了
但是列表生成式的出現,讓我們有了新方法
列表生成式的寫法
我們以實際例子來看:
比如我們想定義一個
[1*1,2*2,3*3,4*4,5*5...10*10]
這樣的list,那麼我們先用笨方法實現以下
nums=[]
for i in range(1,11):
nums.append(i*i)
這樣就能把nums填充好,如下示例圖所示:
看著其實也不是很複雜,但是 我們現在用「列表生成式」來試一下
nums=[i*i for i in range(1,11)]
這樣就可以了,是不是很簡單
我們來驗證一下
發現,果然跟我們用笨方法實現的一樣。
那麼接下來我們來看看「列表生成式」的書寫規律
「列表生成式」的書寫規律
nums=[i*i for i in range(1,11)]
我們對比“笨方法”和“好方法”的區別,發現寫列表生成式時,把要生成的元素" i*i "放到前面,後面跟for迴圈,就可以把list建立出來
除此之外,在「列表生成式」的for迴圈之後,還可以新增判斷,比如我們可以篩選出只有偶數的結果,寫法如下
nums=[i*i for i in range(1,11) if i%2==0]
執行效果圖如下
除了新增條件判斷,還可以實現雙層迴圈,寫法如下
arrays=[m+n for m in 'ABC' for n in '123']
效果圖如下
當然,多層的迴圈也是可以實現的,只不過用處不大
通過「列表生成式」實現的有用的小案例
-
展示當前目錄下的所有檔名和目錄名(需用到os模組)
-
for迴圈使用兩個變數遍歷dict
-
把一個list中的字串變成小寫(用到了字串的lower()方法)
總結
「列表生成式」的寫法其實就是把以前的笨方法的處理,前置了,並且基於這個思路再往後邊新增判斷,或者是另外的迴圈。
寫法也是比較簡單的,大家可以多多練習一下,很快就能上手哦
相關文章
- python高階特性:切片/迭代/列表生成式/生成器Python
- 【廖雪峰python入門筆記】列表生成式Python筆記
- Python 高階特性(4)- 生成器Python
- python學習筆記 列表的切片Python筆記
- 生成函式 學習筆記函式筆記
- MySQL高階學習筆記(二)MySql筆記
- 《javascript高階程式設計》學習筆記 | 7.3.生成器JavaScript程式設計筆記
- 【Python3學習筆記】之【Python高階——多執行緒】Python筆記執行緒
- python進階學習筆記(一)Python筆記
- Python學習之高階特性Python
- Python學習筆記8——列表、字典、元組Python筆記
- Python筆記-列表推導式Python筆記
- Python 高階特性Python
- Javascript高階程式設計 學習筆記JavaScript程式設計筆記
- oracle學習筆記(十一) 高階查詢Oracle筆記
- js高階 物件導向 學習筆記JS物件筆記
- redis學習筆記(詳細)——高階篇Redis筆記
- Python學習筆記 - lambda表示式Python筆記
- python學習筆記(六)——函式Python筆記函式
- 「學習筆記」迴圈、列表筆記
- React學習筆記-列表 & KeysReact筆記
- Python學習筆記|Python之推導式Python筆記
- 《javascript高階程式設計》學習筆記 | 11.3.非同步函式JavaScript程式設計筆記非同步函式
- python學習筆記:第10天 函式進階和作用域Python筆記函式
- python學習筆記:第4天 列表和元組Python筆記
- Python零基礎學習筆記(十五)——list(列表)Python筆記
- list列表運算子,列表元素的遍歷,列表的方法,生成列表,巢狀的列表|python自學筆記(四)巢狀Python筆記
- Python學習筆記 - 正規表示式Python筆記
- Python學習筆記 - 迭代器和生成器Python筆記
- C#特性學習筆記C#筆記
- python列表生成式和生成器Python
- Python學習筆記|Python之正規表示式Python筆記
- Oracle高階培訓 第5課 學習筆記Oracle筆記
- Oracle高階培訓 第6課 學習筆記Oracle筆記
- Oracle高階培訓 第7課 學習筆記Oracle筆記
- oracle學習筆記(十七) PL/SQL高階應用Oracle筆記SQL
- [Java學習筆記]JDK1.8新特性學習(一)Lambda表示式Java筆記JDK
- Flutter學習筆記(12)--列表元件Flutter筆記元件