列表,字典,元组解析本质上是先生成一个生成器,然后使用生成器对列表,字典,元组在初始化的时同时赋值
1. 列表解析
生成一个列表
nums = [1, 3, 9]
list_gen = [num**2 for num in nums if x <= 5] # [1, 9]
代码描述:
表达式(num**2)用于生成你要存储到列表中的值
for循环(for num in nums) 用于给表达式供值
条件判断(if x <= 5)表示供值的元素应满足的条件
2. 字典解析
生成一个字典
person = ["name", "age"]
dic_gen = {key: value for key, value in enumerate(person) if value == "tom"} #{0:"tom"}
字典也可以通过生成器来生成,因此字典也可以用下边的方法生成
person = ["name", "age"]
dic_gen = dict((key, value) for key, value in enumerate(person) if value == "tom")} #{0:"tom"}
3. 集合解析
返回一个集合
nums = [1, 3, 9]
set_gen = {num**2 for num in nums if x <= 5} #{1, 9}