iT邦幫忙

2025 iThome 鐵人賽

DAY 18
0
佛心分享-IT 人自學之術

Python 學習筆記系列 第 18

筆記Day18:推推推導式

  • 分享至 

  • xImage
  •  

在前幾個章節大概是串列 List的部分有稍微提到推導式,這是一種可用一行程式碼將迴圈、條件判斷、運算邏輯集一生整合起來產生新的序列,比一般的迴圈更加簡潔、可讀性高。

Python 中常見的推導式有以下幾種:

  1. 串列推導式
    基本語法:
    [ 表達式 for 變數 in 可迭代物件 if 條件 ]
evens = [x for x in range(1, 11) if x % 2 == 0]
print(evens)  # [2, 4, 6, 8, 10]
  1. 集合推導式
    根據集合的特性,最後的結果會自動去除重複的元素。
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_squares = {x**2 for x in numbers}
print(unique_squares)  # {1, 4, 9, 16, 25}
  1. 字典推導式
even_squares = {x: x**2 for x in range(1, 11) if x % 2 == 0}
print(even_squares)  # {2: 4, 4: 16, 6: 36, 8: 64, 10: 100}

除了前面所提到的三種推導式外,Python 還有生成器推導式,用法上和串列推導式差不多,但不會一次生成整個序列,而是逐一生成元素,適合在處理大量資料節省記憶體。

生成器推導式

gen = (x**2 for x in range(1, 6))
for val in gen:
    print(val)

推導式優缺點

優點:

  • 簡潔:一行完成多行迴圈的功能
  • 提高可讀性:邏輯集中、直觀
  • 支援條件判斷和運算邏輯:可增加條件、計算、轉換等

缺點:

  • 內容過於冗長會降低可讀性,複雜巢狀推導式不容易被理解
  • 並非所有情況都是和,邏輯複雜時使用一般迴圈會比較好閱讀且更直覺

總歸來說,推導式是 Python 中的語法糖,很好用XD
能讓一般的迴圈方式在一行程式碼內完成,不僅簡化了程式碼、提高可讀性以及維護性,但過於複雜的邏輯或是巢狀迴圈還是不建議使用推導式,乖乖使用一般迴圈保持程式碼可讀性。

那麼今天就介紹到這,明天見ㄅㄅ!


上一篇
筆記Day17:模組 Module
下一篇
筆記Day19:物件 Object 與類別 Class
系列文
Python 學習筆記20
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言