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

列表推导式

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

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__())

迭代器

相关推荐
AA-代码批发V哥10 分钟前
Math工具类全面指南
java·开发语言·数学建模
xhdll12 分钟前
egpo进行train_egpo训练时,keyvalueError:“replay_sequence_length“
python·egpo
Nobkins28 分钟前
2021ICPC四川省赛个人补题ABDHKLM
开发语言·数据结构·c++·算法·图论
Cchaofan29 分钟前
lesson01-PyTorch初见(理论+代码实战)
人工智能·pytorch·python
网络小白不怕黑30 分钟前
Python Socket编程:实现简单的客户端-服务器通信
服务器·网络·python
十八年的好汉30 分钟前
buck变换器的simulink/matlab仿真和python参数设计
开发语言·matlab
88号技师30 分钟前
2025年6月一区SCI-不实野燕麦优化算法Animated Oat Optimization-附Matlab免费代码
开发语言·算法·matlab·优化算法
我不是程序猿儿31 分钟前
【C#】Thread.Join()、异步等待和直接join
开发语言·c#
独行soc1 小时前
2025年渗透测试面试题总结-百度面经(题目+回答)
运维·开发语言·经验分享·学习·面试·渗透测试·php
免檒1 小时前
go语言协程调度器 GPM 模型
开发语言·后端·golang