对列表中两个字符串之间的元素求和

Bha*_*rma -2 python

str我有一个和元素列表int,如下所示

L = [1, "a", "b", 1, 2, 1, "d", 1, "e", 4, 5, "f", "g", 2]
Run Code Online (Sandbox Code Playgroud)

我想总结两个字符串元素之间找到的数字,因此预期的输出结果如下。

[1, "a", "b", 4, "d", 1, "e", 9, "f", "g", 2]
Run Code Online (Sandbox Code Playgroud)

我想以Pythonic的方式解决这个问题。如何做到这一点?

blh*_*ing 5

一种可以说更干净的方法是尝试将当前项目添加到最后一项,并在失败时默认附加该项目:

output = []
for i in L:
    try:
        output[-1] += +i
    except (TypeError, IndexError):
        output.append(i)
Run Code Online (Sandbox Code Playgroud)

output变成:

[1, 'a', 'b', 4, 'd', 1, 'e', 9, 'f', 'g', 2]
Run Code Online (Sandbox Code Playgroud)