用最直白的語言解釋最複雜的概念,一系列教學讓你在短時間內掌握 Python
如果今天要產生一個序列結構 (tuple、list、set、dictionary) ,最直覺就是寫一個迴圈嘛~但一個最簡單的迴圈就要兩三行,如果還有條件判斷就又更長了,今天的內容就是把要用到一整個迴圈寫法的程式碼,縮寫成一行!
推導式 (Comprehension)
把程式碼寫成一行的 Python 語法,讓程式碼更加簡潔
但太複雜的程式不建議使用,以免不易判讀
List comprehension


⚠️ if 條件若放在迴圈後,不可加 else;若放在迴圈前,一定要加 else
Set comprehension

Dictionary comprehension


enumerate(列表, 起始編號):將列表內的值編號並組合成一個索引序列
生成器 (Generator)
產生器用於處理龐大資料,因為它的值是動態產生的,不會存在記憶體裡面
看起來很像 tuple 的 comprehension(但 tuple 沒有 comprehension)
創建生成器

生成器函式:yield()
可以想像成 return,但只會回傳一次

但須注意的是,程式運行到 yield
時會暫停執行,直到下次再次喚醒為止


比較推導式與生成器的差別
生成器所產生的值是動態產生的,不會存在記憶體裡面,能夠有效減少記憶體用量,但因為不會存在記憶體內,所以每次都要重新產生一次🫠
喜歡別忘了給我個讚或按下追蹤喔✨