Python字典;相同键的值之和

标签 python dictionary

这可能很简单,但我只是一个初学者。 如果我有这本字典;

ds = {"ABab": 6.25, "aBab": 6.25, "Abab": 6.25, "abab": 6.25, "ABab": 6.25, "aBab": 6.25, "Abab": 6.25, "abab": 6.25, "ABab": 6.25, "aBab": 6.25, "Abab": 6.25, "abab": 6.25, "ABab": 6.25, "aBab": 6.25, "Abab": 6.25, "abab": 6.25}

有办法创建这个吗?:

ds_new = {"ABab": 25, "aBab": 25, "Abab": 25, "abab": 25}

如果没有办法做到这一点,无论如何感谢您的研究。

最佳答案

如前所述,您无法将此数据存储在字典中。您可以以其他形式存储它,例如元组列表。

ds = [("ABab", 6.25), ("aBab", 6.25), ("Abab", 6.25), ("abab", 6.25),
      ("ABab", 6.25), ("aBab", 6.25), ("Abab", 6.25), ("abab", 6.25),
      ("ABab", 6.25), ("aBab", 6.25), ("Abab", 6.25), ("abab", 6.25),
      ("ABab", 6.25), ("aBab", 6.25), ("Abab", 6.25), ("abab", 6.25)]

然后,您可以通过首先查找唯一键,然后对以该键作为第一个值的元组的值求和来创建总计字典。

keys = set(k for k, _ in ds)
totals = {unique_key: sum(v for k, v in ds if k==unique_key) 
    for unique_key in keys}

或者另一种方式(可能更好)

totals = {}
for key, value in ds:
    totals[key] = totals.get(key, 0) + value

关于Python字典;相同键的值之和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44483120/

相关文章:

Python 相对/绝对导入(再次)

python - python中的边列表中的图形

python - 在给定股票列表的循环中创建不同的数据框

c# - 删除字典中所有低于指定值的条目的有效方法

python - 当它是日期时按字典中的值排序

c++ - 为什么在插入 map 时出现段错误?

python - Setuptools entry_points/console_scripts 在 shebang 中有特定的 Python 版本

python - 如何编译这个Python程序?

python - 加速 pandas 上的复杂功能

python - 使用 python (MAC OSX) 和 PyCharm IDE 安装 OpenCV 时出错