首页 > 解决方案 > 如何对字典内列表的所有值求和

问题描述

我正在尝试汇总此列表中的所有值,同时仍保持其位置:

{'swimming': ['1000', '1200'], 'fencing': ['200', '100'], 'athletics': ['600']}

添加后的输出应如下所示:

{'swimming': ['2200'], 'fencing': ['300'], 'athletics': ['600']}

我尝试了一些示例,但是,它们需要列表的名称。我将如何解决这个问题?

标签: python

解决方案


尝试这个 :

>>> d = {'swimming': ['1000', '1200']}
>>> l = map(int, d['swimming'])
>>> sum(l)
2200

遍历字典的每个键,如果值包含列表中的多个项目,则将它们中的每一个映射为整数格式,将它们相加,类型转换为字符串格式并放入列表中,否则仅列表中的一项保持原状。要更改整个字典,请尝试以下操作:

>>> d = {'swimming': ['1000', '1200'], 'fencing': ['200', '100'], 'athletics': ['600']}
>>> for k in d:
...   s = [str(sum(map(int, d[k])))] if len(d[k])>1 else d[k]
...   d[k] = s
...
>>> d
{'swimming': ['2200'], 'fencing': ['300'], 'athletics': ['600']}

推荐阅读