根据给定的索引合并列表中的元素

tit*_*ata 3 python list

我想基于给定的元组的开始和停止索引(元组的非重叠)合并列表中的元素.我将留下未提及的指数.这是我的榜样

ls = ['1', '2', '3', '4', '5', '6', '7']
merge = [(1, 3), (5, 7)]
Run Code Online (Sandbox Code Playgroud)

在这里,我想将索引从[1:3]一起合并在一起,[5:7]因此输出应该类似于以下内容

['1', '23', '4', '5', '67']
Run Code Online (Sandbox Code Playgroud)

我试图循环使用,range(len(ls))但它似乎不是解决这个问题的正确方法.如果有人有简单的方法来解决这个问题,请告诉我.

Vad*_*nda 7

一个快速而肮脏的解决方案是:

ls = ['1', '2', '3', '4', '5', '6', '7']
merge = [(1, 3), (5, 7)]

result = []
index = 0

for start, end in merge:
    result += ls[index:start]
    result.append("".join(ls[start:end]))
    index = end

print result # ['1', '23', '4', '5', '67']
Run Code Online (Sandbox Code Playgroud)