📜  按值排序python字典列表 - Python(1)

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

按值排序python字典列表 - Python

排序是计算机科学中一项基本操作,它能使数据按照某种规则递增或递减排列,从而更方便地查找、取用。在 Python 中,对字典列表按值排序是个常见的需求,下面我们就来介绍一些常见的实现方法。

方法一:使用 sorted 函数

sorted 函数能够对列表进行排序,我们可以使用 key 参数指定排序的规则。以下是一个按值排序的示例代码:

unsorted_list = [{'name': 'John', 'age': 30}, {'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 35}]
sorted_list = sorted(unsorted_list, key=lambda k: k['age'])

print(sorted_list)
# 输出:[{'name': 'Alice', 'age': 25}, {'name': 'John', 'age': 30}, {'name': 'Bob', 'age': 35}]

以上代码使用了 lambda 函数,以字典中的 age 值作为排序依据,返回的是一个新的已排序的列表。

方法二:使用 itemgetter 函数

itemgetter 函数与 sorted 函数配合使用,同样可以按照指定的键进行排序。以下是一个示例代码:

from operator import itemgetter

unsorted_list = [{'name': 'John', 'age': 30}, {'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 35}]
sorted_list = sorted(unsorted_list, key=itemgetter('age'))

print(sorted_list)
# 输出:[{'name': 'Alice', 'age': 25}, {'name': 'John', 'age': 30}, {'name': 'Bob', 'age': 35}]

以上代码使用了 itemgetter 函数,它的作用是从字典中获取对应的值,返回的是一个可调用对象,可以作为 key 参数传入 sorted 函数中。

方法三:使用 lambda 函数和 sorted 函数配合

除了 itemgetter 函数,我们还可以使用 lambda 函数和 sorted 函数配合,来进行按值排序的操作。以下是一个示例代码:

unsorted_list = [{'name': 'John', 'age': 30}, {'name': 'Alice', 'age': 25}, {'name': 'Bob', 'age': 35}]
sorted_list = sorted(unsorted_list, key=lambda k: k['age'])

print(sorted_list)
# 输出:[{'name': 'Alice', 'age': 25}, {'name': 'John', 'age': 30}, {'name': 'Bob', 'age': 35}]

以上代码与方法一相似,使用了 lambda 函数来指定按照 age 值进行排序。

总结:本文介绍了 Python 中对字典列表按值排序的三种方法,包括使用 sorted 函数、itemgetter 函数和 lambda 函数,它们都非常简单且易于实现。通过掌握这些方法,我们可以更加方便地对数据进行排序和查找。