Python 按字典的值对列表进行排序的方法

Python 按字典的值对列表进行排序的方法

在本文中,我们将看到如何使用值对字典列表进行排序。字典表示Python中封装在大括号中的 键-值 对。键是唯一的,并且用冒号与值分隔,逗号分隔项目。左侧冒号之前的部分是键,而右侧是其对应的值。

假设我们有以下字典列表:

[{'name': 'Sam', 'marks': 98}, {'name': 'Tom', 'marks': 93}, {'name': 'Jacob', 'marks': 97}]

输出应该是以下内容 –

Sorted =
[{'name': 'Tom', 'marks': 93}, {'name': 'Jacob', 'marks': 97}, {'name': 'Sam', 'marks': 98}]

使用lambda函数在sorted()方法中对字典列表进行排序

示例

# list of dictionaries
d = [
    {"name" : "Sam", "marks" : 98},
    {"name" : "Tom", "marks" : 93},
    {"name" : "Jacob", "marks" : 97}
]

# Display the Dictionary
print("Dictionary = \n",d)

# Sorting using values with the lambda function
print("Sorted = \n",sorted(d, key = lambda item: item['marks']))

输出

Dictionary = 
 [{'name': 'Sam', 'marks': 98}, {'name': 'Tom', 'marks': 93}, {'name': 'Jacob', 'marks': 97}]
Sorted = 
[{'name': 'Tom', 'marks': 93}, {'name': 'Jacob', 'marks': 97}, {'name': 'Sam', 'marks': 98}]

使用lambda函数按值对字典列表进行排序,使用sorted()方法按降序排序

示例

# List of dictionaries
d = [
    {"name" : "Sam", "marks" : 98},
    {"name" : "Tom", "marks" : 93},
    {"name" : "Jacob", "marks" : 97}
]

# Display the Dictionary
print("Dictionary = \n",d)

# Sorting using values with the lambda function
# The reverse parameter is True for Descending Order sort
print("Sorted = \n",sorted(d, key = lambda item: item['marks'], reverse = True))

输出

Dictionary = 
 [{'name': 'Sam', 'marks': 98}, {'name': 'Tom', 'marks': 93}, {'name': 'Jacob', 'marks': 97}]
Sorted = 
[{'name': 'Sam', 'marks': 98}, {'name': 'Jacob', 'marks': 97}, {'name': 'Tom', 'marks': 93}]

使用sorted()方法中的itemgetter方法对字典列表进行排序

示例

from operator import itemgetter

# list of dictionaries
d = [
    {"name" : "Sam", "marks" : 98},
    {"name" : "Tom", "marks" : 93},
    {"name" : "Jacob", "marks" : 97}
]

# Display the Dictionary
print("Dictionary = \n",d)

# Sorting using values with the itemgetter function
print("Sorted = \n",sorted(d, key = itemgetter('marks')))

输出

Dictionary = 
 [{'name': 'Sam', 'marks': 98}, {'name': 'Tom', 'marks': 93}, {'name': 'Jacob', 'marks': 97}]
Sorted = 
 [{'name': 'Tom', 'marks': 93}, {'name': 'Jacob', 'marks': 97}, {'name': 'Sam', 'marks': 98}]

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程