如何在Python中对元组列表进行分组

use*_*648 -3 python group-by list

我有一个清单

A= [(1,0,10),(1,10,20), (1,20,30), (2,5,25), (2,5,50), (2,50,100)]
Run Code Online (Sandbox Code Playgroud)

我需要根据A中每个元组的第一个成员对其进行分组,然后是每个组的最小值和最大值.输出是这样的

B = [(1,0,30),(2,5,100)]
Run Code Online (Sandbox Code Playgroud)

Ash*_*ary 5

>>> from operator import itemgetter
>>> from itertools import groupby
def solve(lis):
    for k, g in groupby(lis, key=itemgetter(0)):
        lis = [y for x in g for y in x[1:]]
        yield (k, min(lis), max(lis))
...         
>>> list(solve(A))
[(1, 0, 30), (2, 5, 100)]
Run Code Online (Sandbox Code Playgroud)