什么是列表推导式?具体有何优点?,列表推导式和生成器的区别
墨初 知识笔记 64阅读
列表推导式
可以与三目运算符搭配使用
dict1 {name: by, age: 20}dict2 {name: ss, age: 25}dict3 {name: sa, age: 24}dict4 {name: xs, age: 27}list1 [dict1, dict2, dict3, dict4]list2 [{name: elm[name], age: elm[age] 20 if elm[age] > 23 else elm[age] 2} for elm in list1]print(list2)
集合推导式 字典推导式 生成器 通过列表推导式得出生成器 超出范围会报错

# 列表推导式list1 [x * 3 for x in range(10)]print(type(list1), list1)# 列表生成式list2 (x * 3 for x in range(10))print(type(list2), list2)print(list2.__next__())print(list2.__next__())print(list2.__next__())print(next(list2))print(next(list2))print(next(list2))
通过函数得出生成器 生成器方法 yield返回该值、暂停该线程通过next()唤醒下一步可以y yield x
send发送一个值给刚才暂停的yield线程赋值给y

def gen(): i 0 while i < 5: temp yield i print(temp, temp) i 1 return 没有更多的数据g gen()print(g)print(g.send(a))print(g.__next__())print(g.__next__())print(g.__next__())
标签: