建议先阅读之前有关函数式编程的博客 Python:函数式编程(一):关于 Python 的函数式编程和可迭代对象,迭代器,生成器 Python:可迭代对象,迭代器,生成器的博客之后再来阅读此博客。
1. 语法
1.1 列表生成式:
基本形式如下:
list1 = [x * x for x in range(1, 11)]
print(isinstance(list1, list))
print(list1)
结果如下:
结果表明 list1 是一个列表,列表数据是 [1, 10] 之间每个整数的平方构成。
1.2 生成器
from collections import Iterator
generator1 = (x * x for x in range(1, 11))
print(isinstance(generator1, Iterator))
print(next(generator1))
print(next(generator1))
结果如下:
生成器是一种特殊的迭代器,因此判断是否为 Iterator 为 True,然后可以调用 next 方法访问数据。
1.3 字典生成式
dict1 = {x: x**3 for x in range(1, 11)}
print(isinstance(dict1, dict))
print(dict1)
结果如下:
1.4 集合生成式
set1 = {x for x in range(1, 11)}
print(isinstance(set1, set))
print(set1)
结果如下: