如何在列表中的字符串之间添加数字
我有一个包含字符串和整数的列表。
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)
印刷: