如何不定义新函数,交替合并两个字符串列表?
解决列表交替合并问题
你的代码问题出在insertcounter的步长上——每次插入元素后,原列表lst1的长度会增加1,后续元素的索引都往后偏移了一位,所以下次插入的位置应该在上次的基础上加2,而不是加1。
修改后的代码如下:
lst1 = ['the', 'brown', 'jumps', 'the', 'dog'] lst2 = ['quick', 'fox', 'over', 'lazy'] insertcounter = 1 for k in lst2: lst1.insert(insertcounter, k) insertcounter += 2 # 每次插入后,步长改为2
运行这段代码后,lst1就会变成你想要的结果:
['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog']
另一种更直观的写法是利用enumerate获取lst2的元素索引,直接计算插入位置:
lst1 = ['the', 'brown', 'jumps', 'the', 'dog'] lst2 = ['quick', 'fox', 'over', 'lazy'] for idx, item in enumerate(lst2): lst1.insert(1 + 2*idx, item)
这种方式不需要维护额外的计数器,直接通过索引计算插入位置,逻辑更清晰。
内容的提问来源于stack exchange,提问作者livisaur
相关产品推荐
相关产品推荐

