假设我的字典是这样的:
{
"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
的每个键的总数相加,得到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"]
这将给我一个所有inviters
和uses
的列表,但我不希望有两个相同的inviter
,而是希望它们作为一个添加在一起。我怎样才能让他们使用zip
以文本格式并排显示这些数据?你知道吗
collections.Counter
对于那些“计数我或零”的东西/积累问题(你不能用列表理解来解决):结果:
假设dict存储为变量
d
:o
将变成:现在不是使用简单词典的好时机吗?你知道吗
相关问题 更多 >
编程相关推荐