是否有一种简洁的衬线来处理和替换字典中的值? (使用某种形式的字典理解)

问题描述 投票:0回答:1

假设你有这样的课程

class Foo:
  bar = {"hello": 123, "world": 456}

我想定义

Foo.bar
,使得对于
bar
的所有键和值,所有偶数值都替换为 0。

有没有一种干净的方法可以在一行中做到这一点?问题是字典

{"hello": 123, "world": 456}
尚未存储到变量中(我希望
bar
是在处理已经发生的情况下定义的)

所以下面的内容是不可能的,因为

d
不是一个变量,但(对我来说)感觉
d
必须被定义来完成我要求的一个衬里。

class Foo:
  bar = {key: (d[key] if not d[key] % 2 else 0) for key in {"hello": 123, "world": 456}}

我的要求是不可能的吗?

python python-3.x dictionary
1个回答
0
投票
bar = {key: (value if not value % 2 else 0) for key, value in {"hello": 123, "world": 456}.items()}

完成工作

© www.soinside.com 2019 - 2024. All rights reserved.