如何在列表中的字符串之间添加数字

我有一个包含字符串和整数的列表。

mylist = [1, 2, 'turtle', 4, 5, 1, 'dog', 2, 'cow', 3, 4]

这是我的预期输出。

[3, 'turtle', 10, 'dog', 2, 'cow', 7]
[3, 'turtle', 10, 'dog', 2, 'cow', 7]

我尝试使用 for 循环,但似乎无法达到我想要的结果。

回答

您可以使用itertools.groupby

from itertools import groupby

mylist = [1, 2, "turtle", 4, 5, 1, "dog", 2, "cow", 3, 4]

out = []
for v, g in groupby(mylist, lambda k: isinstance(k, str)):
    if v:
        out.extend(g)
    else:
        out.append(sum(g))

print(out)

印刷:


以上是如何在列表中的字符串之间添加数字的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>