📜  python排序字典多个键 - Python(1)

📅  最后修改于: 2023-12-03 15:04:39.462000             🧑  作者: Mango

Python排序字典多个键

在Python中,对于字典可以使用sorted()函数进行排序,但如果字典中有多个键,则需要进行一些额外的处理来实现多个键的排序。本文将介绍如何使用Python对字典中的多个键进行排序。

排序方法

Python中字典排序通常使用sorted()函数,对于多个键的排序需要使用tuple来对键进行排序。下面是一个使用sorted()函数排序字典的例子:

d = {'apple': 10, 'orange': 20, 'banana': 5, 'mango': 30}
sorted_d = sorted(d.items(), key=lambda x: x[0])
print(sorted_d)

这个例子中将字典转换为列表形式,使用key参数指定排序规则,并将排序后的元组重新转换为字典。

输出结果如下:

[('apple', 10), ('banana', 5), ('mango', 30), ('orange', 20)]

这里使用了lambda表达式来指定排序规则,x[0]表示按键值排序,x[1]表示按值排序。

多个键排序

对于多个键排序,需要将排序条件放到元组中,并按照优先级进行排序。下面是一个按照键值和值进行排序的例子:

d = {'apple': 10, 'orange': 20, 'banana': 5, 'mango': 30}
sorted_d = sorted(d.items(), key=lambda x: (x[0], -x[1]))
print(sorted_d)

这里将排序条件(x[0], -x[1])放到了元组中,按键值进行正序排序,按值进行倒序排序。

输出结果如下:

[('apple', 10), ('banana', 5), ('mango', 30), ('orange', 20)]

需要注意的是,这里使用了负号(-)来实现倒序排序。

结论

多个键排序使用sorted()函数可以实现从易到难的排序方式,使用元组(tuple)指定多个排序关键词和排序顺序的方式更加灵活,可以快速满足多种排序需求。

参考文档:Python Sorting HOW TO