一、基本格式:要加入容器的元素 for 元素名 in 迭代对象 if 条件。
二、基本生成式
# 列表生成式 l = [1, 2, 3, 4, 5, 6] l_new = [member for member in l if member > 2] print(l_new) # 结果为 [3, 4, 5, 6] # 字典生成式 items = [['a', 1], ['b', 2], ['c', 3], ['d', 4]] d = {k: v for k, v in items if v < 4} print(d) # 结果为 {'a': 1, 'b': 2, 'c': 3} # 集合生成式 ll = [1, 2, 3, 1, 1] s = {member for member in ll} print(s) # 结果为 {1, 2, 3}
三、生成器生成式:将原本列表,字典,集合的[]和{}都换成(),则会生成对应的生成器。
l = [1, 2, 3, 4, 5, 6] l_new = (member for member in l if member > 2) print(l_new) # 结果为显示 l_nwe 是 generator object
四、生成器生成式与sum()功能结合:sum()里面加入一个迭代对象,会得出所有迭代出值的和。
l = [1, 2, 3, 4, 5, 6] print(sum(l)) # 结果为列表所有元素相加之和 21 print(sum((member for member in l))) # 将通过列表生的生成器投入会得到一样结果 21 print(sum(member for member in l)) # 当向 sum() 中投入的是生成器生成式的时候可以把生成式自身的括号省略,结果不变 21