我有一个如下所示的列表:
a=[1,2,3,4,5,2,3,1,2,3,4,5,1,5,5,3,2,1,3,1]
我正在寻找一种方法,每次它找到 1 时,这个元素和接下来的两个元素都被替换为 -999。以下代码似乎有效。
b = a
x = 2 #number of continuous elements to browse
for n,i in enumerate(a):
if i==1:
for t in range(x):
print n+t
b[n+t]=-999
print b
但是,当 1 位于列表末尾时,我得到:
IndexError: list assignment index out of range
有更好的方法吗?
最佳答案
这是一种特殊情况 - 对于列表末尾的元素,下一个元素不存在。在访问列表之前,您需要在内循环中检查这种特殊情况:
if n+t >= len(b):
break
关于python - 如果满足条件,则替换列表中的元素和后续元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48010462/