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

列表推导式

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

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

迭代器

相关推荐
hsjiasb5 小时前
FreeRTOS学习(二十七)——任务栈与栈溢出检测
开发语言·stm32·学习·学习笔记·freertos
丰锋ff6 小时前
3.1 Qt事件之事件处理器
开发语言·qt
多弗朗皮卡丘6 小时前
C语言梦开始的地方7:函数
c语言·开发语言
月华路7 小时前
G1 垃圾回收:脏卡队列、记忆集与并发精化线程机制
java·开发语言
XLYcmy7 小时前
京东 算法实习一面 下+手撕
c++·python·llm·概率论·数据处理·训练·codebert
虎头金猫7 小时前
如何在群晖NAS上通过Docker部署CloudSaver?群晖部署CloudSaver教程|聚合资源搜索并实现远程访问
运维·服务器·网络·python·docker·容器·pandas
从零开始学习人工智能7 小时前
WSL2部署CUDA12+cuDNN9踩坑实录:ONNX Runtime GPU推理环境搭建全流程
python
gugucoding7 小时前
47. 【Java】Java内存模型(JMM)与可见性
java·开发语言
m0_380743877 小时前
从零调用 Claude 教程
开发语言·python·node.js
起床学FPGA8 小时前
AI回答问题之后,会自动跳到最下面的问题
开发语言·javascript·ecmascript