如何减少 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!!!!
当字典中不存在元素时,如何减少代码量?否则将其分配给对象。 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!!!!