python 两个列表插入对应的位置

>>> a=[45,67,89,90,234,67,78123131,4645645,1231231]
>>> b=["qweqw","qeqeqe","sd","fsdf"]

我想把b 列表的对应字符 插入到 a 列表的每隔2个字段插入一个

最后形成新的列表结果如下c=[45,67,"qweqw",89,90,"qeqeqe",234,67,"sd",78123131,4645645,"fsdf",1231231]

如何实现?

阅读 3.1k
2 个回答
a = [45, 67, 89, 90, 234, 67, 78123131, 4645645, 1231231]
b = ["qweqw", "qeqeqe", "sd", "fsdf"]

for i, v in enumerate(b):
    a.insert(i*3 + 2, v)

print a
c = [a[i-i//3] if i%3!=2 else b[i//3] for i in range(len(a)+len(a)//2)]

逻辑:
1、结果列表c的长度是len(a)+len(a)//2。
2、当结果列表的索引值模3余2(需要插入的位置)的时候,取b[i//3](第i//3个插入位置)的值赋给c[i]。
3、其他情况,取a[i-i//3)](当前索引值与已经插入数据的位置个数的差值)的值赋给c[i]。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题