以下是一个示例代码,演示了如何按照特定键将列表分组:
from itertools import groupby
# 定义一个包含字典的列表
data = [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30},
{"name": "Charlie", "age": 25},
{"name": "Dave", "age": 30},
{"name": "Eve", "age": 25}
]
# 按照年龄进行分组
data.sort(key=lambda x: x["age"]) # 首先按照年龄对列表进行排序
groups = groupby(data, key=lambda x: x["age"]) # 按照年龄对列表进行分组
# 打印结果
for age, group in groups:
print(f"Age {age}:")
for person in group:
print(person["name"])
print()
输出结果:
Age 25:
Alice
Charlie
Eve
Age 30:
Bob
Dave
在上述代码中,我们首先使用sort()
函数按照年龄对列表进行排序。然后,我们使用groupby()
函数按照年龄对列表进行分组。groupby()
函数返回一个迭代器,其中每个元素都是一个元组,包含一个特定年龄的所有字典。最后,我们遍历迭代器并打印结果。
请注意,groupby()
函数在分组之前要求列表是有序的。因此,在调用groupby()
函数之前,我们使用sort()
函数对列表进行排序。如果不需要按照特定顺序分组,可以跳过排序步骤。
上一篇:按照特定键对字典进行排序
下一篇:按照特定键计算字典中的重复项