【问题标题】:How to group a list of tuples in Python [closed]如何在 Python 中对元组列表进行分组 [关闭]
【发布时间】:2013-11-12 20:32:23
【问题描述】:

我有一个类似的列表

A= [(1,0,10),(1,10,20), (1,20,30), (2,5,25), (2,5,50), (2,50,100)]

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

B = [(1,0,30),(2,5,100)]

【问题讨论】:

  • 看起来你正在找人写一些代码。如果您向我们展示您迄今为止所做的尝试,您将在这方面获得更多的运气。
  • 感谢@mtitan8 您的 cmets。无论如何,我发布了这意味着我到目前为止找不到方法。

标签: python list group-by


【解决方案1】:
>>> 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)]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    相关资源
    最近更新 更多