【问题标题】:Concat elements of tuple if contiguous lables are same如果连续标签相同,则连接元组的元素
【发布时间】:2023-03-07 13:17:01
【问题描述】:

我有一个元组列表。

 [('a', 1), ('b', 1), ('c',1), ('d', 2), ('e',1)]`

元组的第二个元素是它的标签。我想连接标签相同的连续第一个元素。

例如,我想转换 [('a', 1), ('b', 1), ('c',1), ('d', 2), ('e',1)][('abc',1),('d',2), ('e',1)]

【问题讨论】:

  • 为什么要同时标记 Haskell 和 Python?
  • 我想这样做是功能性的方式。
  • @user315971:但是尽管 Haskell 是一种函数式语言,但如果你想在 Python 中以函数式的方式执行它,则不应包含它,反之亦然。
  • 您是否已经尝试过任何代码?
  • 好的。删除它。

标签: python list functional-programming tuples


【解决方案1】:

这里有一个快速函数来循环遍历元组并将每个元组与前一个元组的标签进行比较,如果标签匹配,则将它们连接起来。

def parse_tuples(x):
    prev_tuple = list(x[0])
    parsed = []
    for i in x[1:]:
        if i[1] == prev_tuple[1]:
            prev_tuple[0] += i[0]
        else:
            parsed.append(tuple(prev_tuple))
            prev_tuple = list(i)
    parsed.append(tuple(prev_tuple))
    return parsed

【讨论】:

    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-21
    • 2021-03-04
    • 2014-08-27
    • 1970-01-01
    相关资源
    最近更新 更多