gpt4 book ai didi

python - 将具有相同键字符串的多个字典键值相加

转载 作者:行者123 更新时间:2023-11-28 17:03:10 24 4
gpt4 key购买 nike

假设我的字典是这样的:

{
"432701228292636694" : {
"64AEdcb" : {
"inviter" : "282764296075870208",
"uses" : 40
},
"9WVmh3Q" : {
"inviter" : "173219378492473345",
"uses" : 26
},
"AE8ugEN" : {
"inviter" : "285548207189000204",
"uses" : 4
},
"EmCddbN" : {
"inviter" : "193926566881918978",
"uses" : 2
},
"GKnPWyW" : {
"inviter" : "147756076299845632",
"uses" : 1
},
"JnmyFKE" : {
"inviter" : "173219378492473345",
"uses" : 10
},
"Km4wZTz" : {
"inviter" : "161132853256650752",
"uses" : 9
},
"M8uYMNb" : {
"inviter" : "193896125969858561",
"uses" : 8
},
"e9vTXcz" : {
"inviter" : "273852837988007936",
"uses" : 1
},
"gTB7w4R" : {
"inviter" : "327660257423917066",
"uses" : 1
},
"hG2KyZa" : {
"inviter" : "315630485114191872",
"uses" : 2
},
"pdZNPFa" : {
"inviter" : "141431182792458241",
"uses" : 537
},
"rZwH4QF" : {
"inviter" : "384664458628169728",
"uses" : 4
},
"s9FXVAU" : {
"inviter" : "125092433657593856",
"uses" : 2
},
"wrPbkGz" : {
"inviter" : "277605262486011904",
"uses" : 3
}
}
}

我想将具有相同 inviter 的每个 key 的总数相加,以获得 uses 的总和。在上面的数据中,inviter“173219378492473345”键使用了 26 和 10。我希望能够将其合并为 36。

我怎样才能做到这一点?我能够编写一个列表理解语句来获取每个项的值,但是将它们加在一起并得出总数是我迷路的地方。

下面的代码是我已经写的:

codes = sorted(self.invites_db[server.id], key=lambda x: (self.invites_db[server.id][x]['uses']), reverse=True)
inviters = [server.get_member(self.invites_db[server.id][x]['inviter']).name + "#" + server.get_member(self.invites_db[server.id][x]['inviter']).discriminator for x in codes if self.invites_db[server.id][x]['inviter'] != "141431182792458241"]
uses = [self.invites_db[server.id][x]['uses'] for x in codes if self.invites_db[server.id][x]['inviter'] != "141431182792458241"]

这将给我一个所有inviteruses 的列表,但我不想有两个相同的inviter。相反,我希望将它们作为一个加在一起。我该怎么做才能让他们使用 zip 以文本格式并排显示这些数据?

最佳答案

collections.Counter 用于那些“算我或零”的东西/累积问题(你无法用列表理解来解决):

result = collections.Counter()
for subdict in d["432701228292636694"].values():
result[subdict["inviter"]] += subdict["uses"]

结果:

>>> result
{'125092433657593856': 2,
'141431182792458241': 537,
'147756076299845632': 1,
'161132853256650752': 9,
'173219378492473345': 36,
'193896125969858561': 8,
'193926566881918978': 2,
'273852837988007936': 1,
'277605262486011904': 3,
'282764296075870208': 40,
'285548207189000204': 4,
'315630485114191872': 2,
'327660257423917066': 1,
'384664458628169728': 4}

关于python - 将具有相同键字符串的多个字典键值相加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52983386/

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