用另一个数组替换部分数组的最佳方法

时间:2017-04-02 14:23:01

标签: python list replace

我正在寻找做出类似事情的最pythonic方式:

a = [1,2,3,4,5,6,7,8]
b = ['a','b','c']
c = replace(a,b,2)

c is now [1,2,'a','b','c',6,7,8]

2 个答案:

答案 0 :(得分:5)

您可以相应地对列表进行切片!

  • 也就是说,ab是您的初始列表,而您想要从索引s替换的那个,a[:s]将获得所有元素从0到s之前是([1,2])。

  • a[s+len(b):]将获取索引slen(b)的所有项目,即([6,7,8]

所以当你连接第一个结果和b然后第二个结果时你可以获得所需的输出!

a[:s]+b+a[s+len(b):]

所以,

>>> a = [1,2,3,4,5,6,7,8]
>>> b = ['a','b','c']
>>> replace=lambda a,b,s:a[:s]+b+a[s+len(b):]
>>> c = replace(a,b,2)
>>> print c
[1, 2, 'a', 'b', 'c', 6, 7, 8]

希望这有帮助!

答案 1 :(得分:1)

好的,这是另一种简单的方法: (编辑:忘记切片将其复制到c)

a = [1,2,3,4,5,6,7,8]
b = ['a','b','c']
c=a[:]
c[2:5]=b
print(c)

或者,当您想要替换时:

a = [1,2,3,4,5,6,7,8]
b = ['a','b','c']
a[2:5]=b
print(a)

希望我帮忙!