У меня есть два спискаУдаление элементы, соответствующие «None» в списках
x = [ None , None , "foo" , "bar" ]
y = [ "bar" , "foo" , "foo" ,"bar"]
len(x) == len(y)
Я хочу, чтобы проверить, существует элемент в списке x
, который None
затем удалить этот элемент и удалить соответствующий элемент у тоже. хотел удалить x[0] == None
, поэтому удалить x[0]
и y[0]
из x
и y
результат должен быть:
x = ["foo","bar"]
y = ["foo","bar"]
я попробовал совсем не-вещий путь, который дал мне «индекс списка из диапазона» ошибка :
for i in range(0,len(x)):
if(x[i] == None):
x.remove(x[i])
y.remove(y[i])
Ошибка списка «индекс за пределами диапазона», поскольку в вашем цикле for вы определяете, что индекс идет от 0 ... len (x) - 1. Затем вы продолжаете и удаляете элементы из списка, что уменьшает длину списка. Таким образом, вы пытаетесь получить доступ к большему количеству элементов, чем оно содержит, если вы когда-либо удаляете элемент. – datosh