use*_*666 2 python replace list
我正在寻找做类似事情的最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]
Run Code Online (Sandbox Code Playgroud)
你可以相应地切割你的清单!
也就是说,使用a和b作为您的初始列表以及要从索引替换的列表s,a[:s]将获得从0到s的所有元素,即([1,2]).
a[s+len(b):] 将得到指数的所有项目s来len(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]
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
好的,这是另一种简单的方法:(编辑:忘记切片 a 将其复制到 c 中)
a = [1,2,3,4,5,6,7,8]
b = ['a','b','c']
c=a[:]
c[2:5]=b
print(c)
Run Code Online (Sandbox Code Playgroud)
或者,当您想就地更换时:
a = [1,2,3,4,5,6,7,8]
b = ['a','b','c']
a[2:5]=b
print(a)
Run Code Online (Sandbox Code Playgroud)
希望我有所帮助!