文章目錄
- 🧠 總結
- 1. 基本語法
- 2. 加篩選條件
- 🔁 雙層循環(全排列)
- 📂 遍歷目錄
- 🔑 遍歷字典
- 🔡 轉小寫
- 3. if 和 if...else 的區別
- 4. 練習題
🧠 總結
特性 | 用法示例 |
---|---|
基礎語法 | [x for x in iterable] |
帶條件篩選 | [x for x in iterable if condition] |
條件表達式 | [x if cond else y for x in iterable] |
多重循環 | [x + y for x in A for y in B] |
字典處理 | [k + '=' + v for k, v in d.items()] |
類型判斷過濾 | [x for x in L if isinstance(x, str)] |
1. 基本語法
[x for x in iterable]
示例:生成 1~10 的平方數
squares = [x * x for x in range(1, 11)]
print(squares)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
2. 加篩選條件
只保留偶數平方:
evens = [x * x for x in range(1, 11) if x % 2 == 0]
# [4, 16, 36, 64, 100]
🔁 雙層循環(全排列)
pairs = [m + n for m in 'ABC' for n in 'XYZ']
# ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
📂 遍歷目錄
import os
files = [d for d in os.listdir('.')]
🔑 遍歷字典
d = {'x': 'A', 'y': 'B', 'z': 'C'}
pairs = [k + '=' + v for k, v in d.items()]
# ['x=A', 'y=B', 'z=C']
🔡 轉小寫
L = ['Hello', 'World', 'IBM', 'Apple']
lowered = [s.lower() for s in L]
# ['hello', 'world', 'ibm', 'apple']
3. if 和 if…else 的區別
? 過濾條件(寫在 for
后):
[x for x in range(1, 11) if x % 2 == 0]
# [2, 4, 6, 8, 10]
?? ? 錯誤寫法(不能在過濾條件加 else):
# 錯誤示例:
# [x for x in range(1, 11) if x % 2 == 0 else 0]
? 條件表達式(寫在 for
前)必須帶 else
:
[x if x % 2 == 0 else -x for x in range(1, 11)]
# [-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]
4. 練習題
將包含字符串與非字符串的列表,轉換為小寫字符串列表。
L1 = ['Hello', 'World', 18, 'Apple', None]
L2 = [s.lower() for s in L1 if isinstance(s, str)]print(L2)
# ['hello', 'world', 'apple']# 測試
if L2 == ['hello', 'world', 'apple']:print('? 測試通過!')
else:print('? 測試失敗!')