Z
ZHANK
数据结构

推导式大全

列表/字典/集合推导式,一行代码替代多行循环

推导式大全

Python 推导式是简洁高效的数据处理语法,一行代码胜过 5 行循环。


列表推导式

python
nums = [1, 2, 3, 4, 5]
squares = [x**2 for x in nums]
evens = [x for x in nums if x % 2 == 0]
labels = ["偶" if x%2==0 else "奇" for x in nums]

字典推导式

python
d = {x: x**2 for x in range(5)}         # {0:0,1:1,2:4,3:9,4:16}
scores = {"a":85,"b":92,"c":78}
passed = {k:v for k,v in scores.items() if v>=80}  # 过滤

集合推导式

python
s = {x**2 for x in range(10)}  # 自动去重

生成器表达式

python
gen = (x**2 for x in range(5))  # 惰性求值,省内存
total = sum(x for x in range(1000) if x%3==0)

嵌套推导式

python
matrix = [[1,2,3],[4,5,6],[7,8,9]]
flat = [x for row in matrix for x in row]  # [1..9]

小结

  • [...] 列表推导式(最常用)
  • {...} 字典/集合推导式
  • (...) 生成器表达式(省内存)