用另一个列表中每三个元素替换原列表中每两个元素。

3
我有两个列表。 例如:
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个回答

7

使用索引切片:

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])

这很不错,但没有处理好字符串格式。 - Burhan Khalid
这个也行,需要格式化,所以谢谢! - F88

3

试试这个:

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]

谢谢!解决了我的问题! - F88

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接