python中的重载排序

2024-06-06 16:37:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含两个字段的字典:一个string字段和一个numeric字段

首先,排序必须按value进行

如果与另一个绑定,则必须由key发出另一个订单

我认为订购量太大了

present = {
    '35':10,
    '20':10,
    '10':50
}
sortedPresent = sorted(present.items(), key=lambda kv: kv[1], reverse=True)

输出为:

[('10', 50), ('35', 10), ('20', 10)]

预期产出:

[('10', 50), ('20', 10), ('35', 10)]

Tags: lambdakey订单truestring字典排序value
1条回答
网友
1楼 · 发布于 2024-06-06 16:37:44
sortedPresent = sorted(present.items(), key=lambda kv: (-kv[1], kv[0]))
# We sort by tuples as described
#      https://www.peterbe.com/plog/in-python-you-sort-with-a-tuple
# Note for tuple as key:
#   -k[1] is descending order by number
#   k[0] is ascending order by string
print(sortedPresent)

输出

[('10', 50), ('20', 10), ('35', 10)]

相关问题 更多 >