如何减少 python 代码的数量?

How to reduce number of python code?

当字典中不存在元素时,如何减少代码量?否则将其分配给对象。 python 概念的证明:

class MyClass:
    pass

key = "test python"
item = MyClass()
d = {}
if d.get(key) is None:
    d[key] = item
else:
    item = d[key]
print(item)

是否可以删除 if else 语句?

也许看看使用 defaultdict(来自集合)是否有帮助?

我不确定你到底想做什么,但我认为这是相同的行为?

from collections import defaultdict

class MyClass:
    pass

key = "test python"
item = MyClass()
d = defaultdict()
d[key] = item
print(item)

与上面无关,我觉得

if not key in d:

if not d.get(key):

可能更像 pythonic?

您可以为此使用 dict.setdefault

key = "test python"
item = MyClass()
d = {}
print(d.setdefault(key, item))

在开始提问之前阅读 Documentation...

您想使用这个setdefault(key[, default])

您可以阅读 python 文档 -> setdefault:

class MyClass:
    pass

key = 'test python'
item = MyClass()
d = {}
item = d.setdefault(key, item)

更 pythonic!!!!