在Python中,可以使用sorted()
函数来按照多个列进行排序。以下是一个示例代码:
# 定义一个列表,其中包含多个字典
data = [
{'name': 'John', 'age': 25, 'score': 90},
{'name': 'Bob', 'age': 30, 'score': 85},
{'name': 'Alice', 'age': 27, 'score': 95},
{'name': 'Tom', 'age': 25, 'score': 80}
]
# 使用lambda函数作为排序的键函数
sorted_data = sorted(data, key=lambda x: (x['age'], x['score']))
# 打印排序后的结果
for item in sorted_data:
print(item)
运行上述代码,将会按照age
列进行首次排序,然后再按照score
列进行二次排序。输出结果如下:
{'name': 'John', 'age': 25, 'score': 80}
{'name': 'Tom', 'age': 25, 'score': 90}
{'name': 'Alice', 'age': 27, 'score': 95}
{'name': 'Bob', 'age': 30, 'score': 85}
注意,key
参数接收一个函数,该函数用于提取用于排序的值。在这个示例中,我们使用了一个lambda函数来定义排序的键函数。在lambda函数中,我们通过(x['age'], x['score'])
返回一个元组,该元组的元素将按照顺序用于排序。