📌  相关文章
📜  Python程序按值的总和对字典列表进行排序(1)

📅  最后修改于: 2023-12-03 14:46:46.614000             🧑  作者: Mango

Python程序按值的总和对字典列表进行排序

本文介绍如何在Python中按照字典列表中的值的总和对列表进行排序。具体来说,我们将首先介绍如何创建一个字典列表,其中每个字典的值是一个整数列表。然后,我们将展示如何按照这些值的总和对字典列表进行排序。

创建字典列表

我们将创建一个简单的字典列表,其中每个字典都包含一个名字和一个值列表。我们可以使用以下代码来创建这个列表:

data = [
    {"name": "Alice", "values": [1, 2, 3]},
    {"name": "Bob", "values": [4, 5, 6]},
    {"name": "Charlie", "values": [7, 8, 9]},
]

这将创建一个包含三个字典的列表。每个字典都有一个“name”键和一个“values”键。其中,“name”键的值是一个字符串,而“values”键的值是一个包含三个整数的列表。

按总和排序

现在我们已经有了一个包含字典的列表,每个字典都有一个包含整数的值列表。我们想按照这些值的总和来排序列表。我们可以使用Python的内置函数sorted()来排序列表。

sorted_data = sorted(data, key=lambda x: sum(x["values"]))

在这个例子中,我们使用sum()函数来计算每个字典中values列表的总和。我们使用lambda函数来指示sorted()函数按照总和进行排序。

完整代码

下面是完整的Python代码,该代码演示了如何创建一个字典列表,并按照字典中值的总和进行排序。

data = [
    {"name": "Alice", "values": [1, 2, 3]},
    {"name": "Bob", "values": [4, 5, 6]},
    {"name": "Charlie", "values": [7, 8, 9]},
]

sorted_data = sorted(data, key=lambda x: sum(x["values"]))

print(sorted_data)

运行此代码将输出以下内容:

[{'name': 'Alice', 'values': [1, 2, 3]}, {'name': 'Bob', 'values': [4, 5, 6]}, {'name': 'Charlie', 'values': [7, 8, 9]}]