曹耘豪的博客

Python 生成表达式和生成器

  1. 列表生成式
  2. 字典生成式
  3. 生成器
列表生成式
1
2
3
4
5
6
# [0, 1, 2, 3, 4]
list1 = [i for i in range(0, 5)]
# [0, 1, 4, 9, 16]
list2 = [i*i for i in range(0, 5)]
# [0, 1, 4]
list2 = [i*i for i in range(0, 5) if i < 3]
字典生成式
1
2
# {'a', 1}
dict 1 = {k, v for k, v in {'a': 1}.items()}
生成器
1
2
3
4
5
6
# <generator object <genexpr> at 0x103acb2b0>
gen1 = (i for i in range(0, 5))

# 需要注意,生成器只能遍历一遍
list(gen1) # [0, 1, 2, 3, 4]
list(gen1) # []
   /