当字典中不存在元素时,如何减少代码数量?否则,将其分配给对象。 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语句?
答案 0 :(得分:1)
也许看看使用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吗?
答案 1 :(得分:1)
您可以为此使用dict.setdefault:
key = "test python"
item = MyClass()
d = {}
print(d.setdefault(key, item))
答案 2 :(得分:1)
在开始提问之前,请先阅读Documentation ...
您要使用此setdefault(key[, default])
答案 3 :(得分:1)
您可以阅读python文档-> setdefault :
def computeValue(data: List[OperationIndex]): Double = {
data.foldLeft(0.0) {
(acc: Double, element: OperationIndex) =>
acc + parser(element.numbers.number1, element.numbers.number2, element.operator)
}
}
它更具蟒蛇性!!!