欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

什么是列表推导式?具体有何优点?,列表推导式和生成器的区别

墨初 知识笔记 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__())

标签:
声明:无特别说明,转载请标明本文来源!