可以使用Python的itertools.groupby()
函数来按照一列的一种类型分组,然后使用sorted()
函数按照该类型排序。以下是一个代码示例:
from itertools import groupby
# 示例数据
data = [
{'name': 'Alice', 'type': 'A', 'age': 25},
{'name': 'Bob', 'type': 'B', 'age': 30},
{'name': 'Charlie', 'type': 'A', 'age': 20},
{'name': 'David', 'type': 'C', 'age': 35},
{'name': 'Eve', 'type': 'B', 'age': 28}
]
# 按照"type"列进行分组
data.sort(key=lambda x: x['type'])
groups = groupby(data, key=lambda x: x['type'])
# 遍历分组后的结果
for key, group in groups:
print(key)
for item in sorted(group, key=lambda x: x['type']):
print(item)
print()
以上代码将根据data
中的"type"列进行分组,并按照"type"类型排序。输出结果如下:
A
{'name': 'Alice', 'type': 'A', 'age': 25}
{'name': 'Charlie', 'type': 'A', 'age': 20}
B
{'name': 'Bob', 'type': 'B', 'age': 30}
{'name': 'Eve', 'type': 'B', 'age': 28}
C
{'name': 'David', 'type': 'C', 'age': 35}
注意,groupby()
函数要求输入的数据事先按照分组的key进行排序。因此,在示例代码中,我们先使用sort()
函数对数据进行排序。