📅  最后修改于: 2023-12-03 15:19:33.617000             🧑  作者: Mango
在python中,对多个键进行排序时,我们可以使用lambda函数和sorted()函数。
首先,让我们假设有一个包含多个字典的列表。我们要按其中两个键(例如'age'和'name')的值将列表中的字典排序。
data = [{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 20},
{'name': 'Charlie', 'age': 30},
{'name': 'David', 'age': 25}]
首先,我们可以使用lambda函数和sorted()函数按一个键进行排序。例如,按字典中的'age'键进行升序排序:
sorted_data = sorted(data, key=lambda x: x['age'])
这将返回一个按照'age'键升序排列的字典列表。
现在,我们想要按两个键('age'和'name')来排序。我们仍然可以使用lambda函数和sorted()函数。然而,这次我们要指定多个排序键。
sorted_data = sorted(data, key=lambda x: (x['age'], x['name']))
这样将按照'age'键进行排序,如果有两个字典的'age'值相同,则使用'name'键进行排序。这将返回一个按照'age'键升序排列,'age'值相同时按照'name'键升序排列的字典列表。
默认情况下,sorted()函数将按升序排序。如果要按降序排序,则可以将'reverse'参数设置为'True'。
例如,按'age'键进行降序排序:
sorted_data = sorted(data, key=lambda x: x['age'], reverse=True)
这将返回一个按照'age'键降序排列的字典列表。
data = [{'name': 'Alice', 'age': 25},
{'name': 'Bob', 'age': 20},
{'name': 'Charlie', 'age': 30},
{'name': 'David', 'age': 25}]
# 按一个键进行排序
sorted_data = sorted(data, key=lambda x: x['age'])
# 按多个键进行排序
sorted_data = sorted(data, key=lambda x: (x['age'], x['name']))
# 降序排序
sorted_data = sorted(data, key=lambda x: x['age'], reverse=True)
以上就是使用python对两个键进行排序的方法。