在前幾個章節大概是串列 List
的部分有稍微提到推導式,這是一種可用一行程式碼將迴圈、條件判斷、運算邏輯
集一生整合起來產生新的序列,比一般的迴圈更加簡潔、可讀性高。
Python 中常見的推導式有以下幾種:
[ 表達式 for 變數 in 可迭代物件 if 條件 ]
evens = [x for x in range(1, 11) if x % 2 == 0]
print(evens) # [2, 4, 6, 8, 10]
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_squares = {x**2 for x in numbers}
print(unique_squares) # {1, 4, 9, 16, 25}
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
能讓一般的迴圈方式在一行程式碼內完成,不僅簡化了程式碼、提高可讀性以及維護性,但過於複雜的邏輯或是巢狀迴圈還是不建議使用推導式,乖乖使用一般迴圈保持程式碼可讀性。
那麼今天就介紹到這,明天見ㄅㄅ!