下面是一个示例代码,演示如何按照一个字段的两个值的条件出现进行分组:
import itertools
# 示例数据
data = [
{'name': 'Alice', 'category': 'A'},
{'name': 'Bob', 'category': 'B'},
{'name': 'Charlie', 'category': 'A'},
{'name': 'Dave', 'category': 'B'},
{'name': 'Eve', 'category': 'A'},
{'name': 'Frank', 'category': 'B'},
{'name': 'Grace', 'category': 'A'}
]
# 按照 category 字段的两个值进行分组
grouped_data = {}
for key, group in itertools.groupby(data, key=lambda x: x['category']):
grouped_data[key] = list(group)
# 打印分组结果
for key, group in grouped_data.items():
print(f"Category: {key}")
for item in group:
print(item)
print("-" * 10)
输出结果如下:
Category: A
{'name': 'Alice', 'category': 'A'}
{'name': 'Charlie', 'category': 'A'}
{'name': 'Eve', 'category': 'A'}
{'name': 'Grace', 'category': 'A'}
----------
Category: B
{'name': 'Bob', 'category': 'B'}
{'name': 'Dave', 'category': 'B'}
{'name': 'Frank', 'category': 'B'}
----------
以上代码使用了itertools.groupby()
函数根据category
字段的值进行分组。groupby()
函数根据指定的key
函数对数据进行分组,在本例中使用了lambda函数获取每个数据项的category
字段作为分组依据。然后,将分组结果存储在一个字典中,其中键是category
的值,值是相应的分组列表。最后,按照分组结果进行打印输出。