以下是一个示例代码,用于按多行数据分组:
from itertools import groupby
# 原始数据
data = [
{'name': 'John', 'age': 25},
{'name': 'Jane', 'age': 30},
{'name': 'John', 'age': 40},
{'name': 'Jane', 'age': 35},
{'name': 'John', 'age': 50}
]
# 按'name'字段分组
data.sort(key=lambda x: x['name'])
groups = groupby(data, key=lambda x: x['name'])
# 遍历分组并打印结果
for key, group in groups:
print(key)
for item in group:
print(item)
print('---')
运行以上代码会输出以下结果:
Jane
{'name': 'Jane', 'age': 30}
{'name': 'Jane', 'age': 35}
---
John
{'name': 'John', 'age': 25}
{'name': 'John', 'age': 40}
{'name': 'John', 'age': 50}
---
这段代码使用了itertools.groupby
函数来按照指定的键(在这里是'name'字段)对数据进行分组。首先,我们需要对原始数据进行排序,以确保相同的键在一起。然后,使用groupby
函数对数据进行分组,并将结果保存在一个迭代器中。最后,我们遍历分组并打印结果。
请注意,groupby
函数要求数据在进行分组之前必须先进行排序。如果数据已经按照分组的键进行排序,则可以直接使用groupby
函数进行分组。如果数据没有排序,则需要先使用sort
函数对数据进行排序。
上一篇:按多维数组进行分组和排序
下一篇:按多周分组