繁体   English   中英

Python - 在字典中求和值

[英]Python - sum values in dictionary

我有一个非常简单的列表:

example_list = [
    {'points': 400, 'gold': 2480},
    {'points': 100, 'gold': 610},
    {'points': 100, 'gold': 620},
    {'points': 100, 'gold': 620}
]

我怎样才能总结所有的黄金价值? 我正在寻找不错的单线。

现在我正在使用此代码(但这不是最佳解决方案):

total_gold = 0
for item in example_list:
    total_gold += example_list["gold"]
sum(item['gold'] for item in myList)

如果你有记忆意识:

sum(item['gold'] for item in example_list)

如果您非常注重时间:

sum([item['gold'] for item in example_list])

在大多数情况下,只需使用生成器表达式,因为性能提升仅在非常大的数据集/非常热的代码路径上才明显。

有关为什么应避免使用 map 的解释,请参阅此答案

有关列表理解与生成器表达式的一些实际时间比较,请参阅此答案

如果您更喜欢map ,这也适用:

 import operator
 total_gold = sum(map(operator.itemgetter('gold'),example_list))

但我认为 gddc 发布的生成器要好得多。 这个答案实际上只是为了指出operator.itemgetter的存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM