{"user1": {"wallet": 45253, "bank": 4563}, "user2": {"wallet": 46212, "bank": 8462}, "user3": {"wallet": 96343, "bank": 6944}, "user4": {"wallet": 6946, "bank": 4593}, "user5": {"wallet": 4354, "bank": 13445}, "user6": {"wallet": 1134, "bank": 456364}}
我正在制作一个不和谐的机器人,我想制作排行榜,但我无法按银行值对这个字典进行排序,我尝试了 sorted_data = {k: v for k, v in sorted(data.items(), reverse=True ,key=lambda item: item[1]["bank"])}
但该值只是一个带有钱包和银行的字符串
最佳答案
data = {"user1": {"wallet": 45253, "bank": 4563}, "user2": {"wallet": 46212, "bank": 8462}, "user3": {"wallet": 96343, "bank": 6944}, "user4": {"wallet": 6946, "bank": 4593}, "user5": {"wallet": 4354, "bank": 13445}, "user6": {"wallet": 1134, "bank": 456364}}
sorted(data.items(), key = lambda x: x[1]['bank'])
##output
[('user1', {'bank': 4563, 'wallet': 45253}),
('user4', {'bank': 4593, 'wallet': 6946}),
('user3', {'bank': 6944, 'wallet': 96343}),
('user2', {'bank': 8462, 'wallet': 46212}),
('user5', {'bank': 13445, 'wallet': 4354}),
('user6', {'bank': 456364, 'wallet': 1134})]
如果你想要一个字典,就把它包起来
dict(sorted(data.items(), key = lambda x: x[1]['bank']))
##output
{'user1': {'bank': 4563, 'wallet': 45253},
'user2': {'bank': 8462, 'wallet': 46212},
'user3': {'bank': 6944, 'wallet': 96343},
'user4': {'bank': 4593, 'wallet': 6946},
'user5': {'bank': 13445, 'wallet': 4354},
'user6': {'bank': 456364, 'wallet': 1134}}
关于python - 无法在discord.py中对字典进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70962244/