假设我有一个字典,其中的键映射到整数,例如:
d = {'key1': 1,'key2': 14,'key3': 47}
在这种情况下,是否有一种语法上简约的方式来返回 d
中的值的总和 — 即 62
?
原文由 nedblorf 发布,翻译遵循 CC BY-SA 4.0 许可协议
假设我有一个字典,其中的键映射到整数,例如:
d = {'key1': 1,'key2': 14,'key3': 47}
在这种情况下,是否有一种语法上简约的方式来返回 d
中的值的总和 — 即 62
?
原文由 nedblorf 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Python 2 中,您可以使用 itervalues()
字典方法避免制作所有值的临时副本,该方法返回字典键的迭代器:
sum(d.itervalues())
在 Python 3 中,您可以只使用 d.values()
因为该方法已更改为执行此操作(并且 itervalues()
已被删除,因为它不再需要)。
为了更容易编写始终迭代字典键值的版本无关代码,实用函数可能会有所帮助:
import sys
def itervalues(d):
return iter(getattr(d, ('itervalues', 'values')[sys.version_info[0]>2])())
sum(itervalues(d))
这基本上就是本杰明彼得森的 six
模块所做的。
原文由 martineau 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5k 阅读✓ 已解决
2 回答1k 阅读✓ 已解决
4 回答894 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
3 回答1.1k 阅读✓ 已解决
1 回答1.6k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
如您所料: