You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将包含两条操作语句的for循环改写为Python单行内联for循环

可行方案

可以直接通过字典解包覆盖指定键的方式实现单行改写,兼容性较好,无需依赖高版本Python特性:

results = [{**item.__dict__, "myprop": item.__dict__["myprop"].__dict__} for item in response.items]

这个写法输出的results和原代码完全一致:先把item.__dict__的所有键值对展开到新字典中,再显式将myprop字段替换为对应实例的__dict__属性。注意这个写法会生成新的字典对象,不会修改原item实例的属性。

如果你使用的是Python 3.8及以上版本,且需要保留原item实例的属性修改,可以用海象运算符实现:

results = [(d := item.__dict__, d.update({"myprop": d["myprop"].__dict__}), d)[2] for item in response.items]

这个写法利用Python元组按顺序执行、最终取最后一位元素的特性,完成字典修改后直接返回目标对象作为列表元素,会直接修改原item实例的属性,和原代码的副作用完全一致。

内容的提问来源于stack exchange,提问作者Tom

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 20:45:02