gpt4 book ai didi

python - 使用公共(public)键/值对 Python 字典列表中的值求和

转载 作者:太空宇宙 更新时间:2023-11-03 13:42:59 24 4
gpt4 key购买 nike

如果这个问题已经被问到,我们深表歉意。我是这方面的新手,但我看过其他几个看起来与我的相似但找不到能解决问题的问题/答案。我尝试过 Counter,但似乎无法弄清楚如何保留 ID 键/值。

我正在尝试使用公共(public)键/值对 Python 字典中的值求和。例如,

list = [
{'ID':1, 'T2':10, 'T3':20},
{'ID':2, 'T2':5, 'T3':0},
{'ID':1, 'T2':5, 'T3':10},
{'ID':2, 'T2':10, 'T3':30},
{'ID':3, 'T2':5, 'T3':0}
]

但我需要这个:

newlist = [
{'ID':1, 'T2':15, 'T3':30},
{'ID':2, 'T2':15, 'T3':30},
{'ID':3, 'T2':5, 'T3':0}
]

感谢任何帮助。

更新:

我借用了另一个答案并尝试了这个:

superdict = {}
for d in rows:
for k, v in d.items():
if superdict.get(k) is None:
superdict[k] = []
if superdict.get(k) is not None:
superdict[k].append(v)

但是我没有继续获取新的组合/附加值列表,而是得到如下内容:

'ID': ['3903', '3997', '3997', '3997', '3947', '4097', '3445', 
'3997', '4107', '3997', '3445', '3997', '3997', '3997',
'3997', '3445', '3997', etc. etc.

更新 2:

对于我的示例造成的混淆,我们深表歉意。我正在寻找的是一种保持 ID 值静态但在字典中添加其他值的方法。因此,所有值为 1 的 ID 对应的值将被加在一起。

例如这个:

list = [{'ID':1, 'T2':10, 'T3':20}, {'ID':1, 'T2':5, 'T3':10}]

变成这样:

newlist = [{'ID':1, 'T2':15, 'T3':30}]

希望这对您有所帮助。

最佳答案

很难理解给定输入后您想要的结果应该是什么。给出预期/正确输出的具体示例。

我怀疑这就是你想要的?

my_list = [{'ID':1, 'T2':10, 'T3':20},
{'ID':2, 'T2':5, 'T3':0},
{'ID':1, 'T2':5, 'T3':10},
{'ID':2, 'T2':10, 'T3':30},
{'ID':3, 'T2':5, 'T3':0}]

new_dictionary = {}
for dictionary in my_list:
for key, value in dictionary.items():
if new_dictionary.has_key(key):
new_dictionary[key] = value + new_dictionary[key]
else:
new_dictionary[key] = value

#Output:
>>>new_dictionary
{'T2': 35, 'ID': 9, 'T3': 60}

关于python - 使用公共(public)键/值对 Python 字典列表中的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26622179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com