如何减少python代码的数量?

时间:2018-07-03 22:48:24

标签: python dictionary coding-style refactoring

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

4 个答案:

答案 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)
    }
  }

它更具蟒蛇性!!!