【问题标题】:Python: Sum values in a dictionary based on conditionPython:根据条件对字典中的值求和
【发布时间】:2013-02-21 23:33:33
【问题描述】:

我有一本包含Key:Values.的字典

这些值是整数。我想根据条件得到值的总和......说所有值> 0(即)。

我尝试了一些变体,但不幸的是似乎没有任何效果。

【问题讨论】:

标签: python python-3.x


【解决方案1】:

尝试在字典上使用values 方法(在 Python 3.x 中返回一个生成器),遍历每个值并在其大于 0(或任何您的条件)时求和:

In [1]: d = {'one': 1, 'two': 2, 'twenty': 20, 'negative 4': -4}

In [2]: sum(v for v in d.values() if v > 0)
Out[2]: 23

【讨论】:

  • 哇,这可能是我见过的最好的英文简明解释示例,它以如此明显的方式映射到生成器表达式,你甚至不需要说这就是你的意思'重新做。希望我能给超过 +1。
  • @abarnert 来自你的赞美,非常感谢 :)
【解决方案2】:
>>> a = {'a' : 5, 'b': 8}
>>> sum(value for _, value in a.items() if value > 0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-27
    • 2018-03-09
    • 2018-05-25
    • 2021-10-12
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多