在Python中从数组中删除项

在Python中从数组中删除项,python,Python,我想从数组中删除单词sabin,但它显示了一些错误 array=["sabin","ram","hari","sabin"] length=len(array) for steps in range(length): if(array[steps]=="sabin"): print("removed=%s"%(array[steps])) del array[steps] length=len(array) print(length) 您可以

我想从数组中删除单词sabin,但它显示了一些错误

array=["sabin","ram","hari","sabin"]

length=len(array)


for steps in range(length):
    if(array[steps]=="sabin"):
        print("removed=%s"%(array[steps]))
        del array[steps]


length=len(array)

print(length)

您可以使用列表压缩来完成此操作:

array=["sabin","ram","hari","sabin"]

length=len(array)

array = [x for x in array if not x == 'sabin']

length=len(array)

您收到的错误是索引器错误。这是因为您正在从列表中删除值,同时仍在对其进行迭代。一种可能的解决方案是使用list对象的remove方法删除“sabin”的实例:

这避免了索引器,因为它不依赖于索引在整个循环中保持不变。

您也可以使用

array=["sabin","ram","hari","sabin"]

to_remove = 'sabin'

while to_remove in array:
    array.remove(to_remove)
    print("removed=%s"%(to_remove))

print(len(array))
my_list = ["sabin","ram","hari","sabin"]
print(my_list)
>>> ['sabin', 'ram', 'hari', 'sabin']
my_list = filter(lambda x: x != 'sabin', my_list)
print(my_list)
>>> ['ram', 'hari']