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

如何用一行字典推导式直接定义类字典属性并替换偶数值?

需求实现方案

这个需求完全可行,以下是两种简洁的一行代码实现方式:

方式一:字典推导式遍历键值对

直接遍历原字典的items(),同时拿到键和值,无需额外变量:

class Foo:
    bar = {k: v if v % 2 != 0 else 0 for k, v in {"hello": 123, "world": 456}.items()}

逻辑很直观:对每个键值对,判断值是否为奇数,是就保留原值,否则替换成0。

方式二:生成器表达式配合dict()构造

和上面逻辑一致,只是用dict()包裹生成器表达式:

class Foo:
    bar = dict((k, v if v % 2 else 0) for k, v in {"hello": 123, "world": 456}.items())

你之前的代码报错是因为只遍历了字典的键,却试图引用未定义的d来取值,而直接遍历items()就能同时获取键和值,完美避开这个问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 20:12:03