一、基本格式:要加入容器的元素 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

 

posted on 2020-01-03 16:01  焚音留香  阅读(214)  评论(0编辑  收藏  举报