类似于@eshirvana,但使用defaultdict,这对于此类问题来说非常有效且常见。我会制作一个defaultdict,并根据最后一个元素确定的键保存元组列表。然后你们所有的小组都会在
values()
from collections import defaultdict
l = [(1,2,'x'), (2,3,'x'), (1,2,'z'), (2,20,'z'), (3,4,'x')]
groups = defaultdict(list)
for t in l:
groups[t[-1]].append(t)
list(groups.values())
# [[(1, 2, 'x'), (2, 3, 'x'), (3, 4, 'x')], [(1, 2, 'z'), (2, 20, 'z')]]