文章目录
- 🧠 总结
- 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('❌ 测试失败!')