将列表中的每个第二个元素替换为其他列表中的每三个元素

时间:2016-01-10 17:13:10

标签: python list for-loop

我有两个清单。 例如:

a=[10,20,30,40,50,60,70,80]
b=[2,4,6,8,10,12,14,16,18,20,22,24]

假设我想用列表b中的每个第三个元素替换列表a中的每个第二个元素。 为了我的目的,我使用这个公式为前两个相应的元素执行此操作:

a[1]="{}\n".format(b[2])

但是如何对列表中的所有元素执行此操作?

提前致谢!

2 个答案:

答案 0 :(得分:6)

使用索引切片:

a = [10,20,30,40,50,60,70,80]
b = [2,4,6,8,10,12,14,16,18,20,22,24]
a[1::2] = b[2::3]

或者这种格式也很重要:

a[1::2] = map('{}\n'.format, b[2::3])

答案 1 :(得分:2)

试试这个:

for x,y in zip(range(1, len(a), 2), range(2, len(b), 3)):
    a[x] = '{}\n'.format(b[y])

或者,简短来说,虽然这是一个直接的替代品,但不进行格式化:

a[1::2] = b[2::3]