python - 如果键为空则拆分元组并将对应值添加到其先前的元组值

标签 python list tuples

这里我有一个元组列表,每当键为空时我想将对应值添加到其先前的元组值。

我可以用传统的方式实现这一点,但它看起来很难看, 有没有什么Pythonic方法可以达到同样的效果?

输入:

data= [('A', 12), ('', 1), ('B', 12), ('', 1), ('C', 12), ('', 1), ('D', 13)]

预期输出:

[13, 26, 39, 52]

我的代码:

data = [('A', 12), ('', 1), ('B', 12), ('', 1), ('C', 12), ('', 1), ('D', 13)]
init = 0 ; splitdata = []
for i in data:
    init = init+i[1]
    if i[0] == '':
        splitdata.append(init)
splitdata.append(init)
print(splitdata)
[13, 26, 39, 52]

最佳答案

reduce(
        lambda lst,item: (((item[0] != '') and lst) or lst[:-1]) + [lst[-1] + item[1]],
        colLabelGrouped[1:],
        [colLabelGrouped[0][1]] )

这种减少...

  • 从包含 colLabelGrouped 中第一项的值的初始列表开始,然后
  • colLabelGrouped 中的剩余项目减少...
    • 将每个项目的值依次添加到正在生成的列表的最后一个元素...
      • 完整列表(如果项目的键不为空)或
      • 列表减去最后一个元素(如果项目的键为空)。

关于python - 如果键为空则拆分元组并将对应值添加到其先前的元组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39350496/

相关文章:

python - 更改三重嵌套 Python 字典的嵌套顺序

python - 如何使用 C 程序的 python 回调设置参数值

python - Pandas groupby然后选择一行

python - 使用类和排序时,如何编写列表来更新文本文档?

swift - 如何在元组上定义后缀运算符?

python - 在 csv 中搜索字符串并保存该列

Python - 列表 : How To Remove Empty Attributes From a List of Dictionaries With Nested Properties?

c# - Dictionary<string, List<IRp>> 问题,覆盖数据

ios - 无法使用类型为 (String, Int) Swift 2 的索引为类型 [(String, Int)] 的值下标

python - 如何返回一个串联的元组?