以下是一个示例代码,它按照相同的第一个项目对列表进行分组:
from itertools import groupby
def group_by_first_item(lst):
# 对列表进行排序,以确保具有相同第一项的项目相邻
sorted_lst = sorted(lst, key=lambda x: x[0])
# 使用groupby函数将具有相同第一项的项目放在一起
groups = groupby(sorted_lst, key=lambda x: x[0])
# 创建一个字典,将每个分组的第一项作为键,将分组的所有项作为值
grouped_dict = {key: list(group) for key, group in groups}
return grouped_dict
# 示例用法
lst = [(1, 'apple'), (2, 'banana'), (1, 'orange'), (3, 'grape'), (2, 'mango')]
result = group_by_first_item(lst)
print(result)
输出结果为:
{1: [(1, 'apple'), (1, 'orange')], 2: [(2, 'banana'), (2, 'mango')], 3: [(3, 'grape')]}
这个示例代码使用sorted
函数对列表进行排序,以确保具有相同第一项的项目相邻。然后,使用groupby
函数将具有相同第一项的项目放在一起。最后,创建一个字典,将每个分组的第一项作为键,将分组的所有项作为值。