列表推导式、集合推导式、字典推导式、生成器

列表推导式

可以与三目运算符搭配使用

python 复制代码
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)

集合推导式

字典推导式

生成器

通过列表推导式得出生成器

超出范围会报错

python 复制代码
# 列表推导式
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

python 复制代码
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__())

迭代器

相关推荐
qq_372154235 分钟前
Python中如何快速创建全零数组_使用NumPy的zeros函数初始化内存
jvm·数据库·python
上弦月-编程7 分钟前
C语言位运算:从入门到精通
运维·c语言·开发语言·vscode·算法·leetcode·极限编程
2301_796588507 分钟前
Tailwind CSS如何快速实现居中对齐_使用mx-auto类实现CSS块级居中
jvm·数据库·python
minglie17 分钟前
c语言面向对象的led
c语言·开发语言
码点滴7 分钟前
上下文压缩不是“丢数据“:Context Compressor 的血缘追踪与 Prefix Cache 保护
人工智能·python·架构·prompt·ai编程
奇妙之二进制8 分钟前
fastdds源码分析之WriterListener
linux·开发语言·dds
小园子的小菜9 分钟前
生产实战|冷热数据转换:从识别、触发到落地全流程解析
java·开发语言·spring
zhangzeyuaaa9 分钟前
Python协程
开发语言·python
forEverPlume11 分钟前
Go语言如何防SQL注入_Go语言SQL注入防护教程【精选】
jvm·数据库·python
m0_6178814211 分钟前
mysql升级后日志文件如何处理_mysql日志迁移说明
jvm·数据库·python