这可能很简单,但我只是一个初学者。 如果我有这本字典;
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/