假设我有一个独特元素列表,
list = [.......,'a','b','c',.....]
如何更换' a'' b'用' d'结果如此,
list = [.....,'d','c'.....]
没有任何循环。
我试过这样做,但它没有用。
list[list.index('a'):list.index('b')] = 'd'
答案 0 :(得分:2)
切片l[start:stop]
不包含stop
位置的元素。
您的代码几乎是正确的,您只需要将1
添加到list.index('b')
:
In [14]: l = ['a', 'b', 'c', 'e']
In [15]: l[l.index('a'):l.index('b') + 1] = 'd',
In [16]: l
Out[16]: ['d', 'c', 'e']
另外:尽量避免使用内置函数和类型的名称作为变量名。
答案 1 :(得分:0)
您可以先加入列表,然后使用replace
:
l = ["a", "d", "c", "a", "b", "c", "e"] #example list
new_list = list(''.join(l).replace("abc", "dc"))
输出:
['a', 'd', 'c', 'd', 'c', 'e']