Вопрос Python неправильно вычитает списки.

Регистрация
23 Янв 2013
Сообщения
60
Репутация
0
Спасибо
0
Монет
0
#Вычитаю список 'a' из списка 'b'



a=[1,3,4,5]

b=[4,5,6,7]

for x in b:

----if x in a:

--------b.remove(x)

print(b)



#Ответ должен получиться [6][7], но получается [5][6][7].

Я знаю, что есть варианты решения другими путями, но главный вопрос: "почему данный вариант работает не правильно?"
 
Пайтон вроде очень чувствителен к кавычкам
 
Непонятно какой должен быть результат. Да и не проще для этого использовать множества set()
 
так ты сделай for j in a:
а не x потому что он как бы обнуляет x сделай любую другую букву
 
309020503_e15bfecc883f58a5e81a8fa592a82847_800.png

Если рассуждать из твоего кода, насколько я догадываюсь, то к примеру во время цикла for есть итерация к примеру вторая и после неё условный оператор if к примеру истинный, тогда из b удаляется переменная, количество переменных становится меньше, но for пропускает в таком случае число
 
Не изменяйте список внутри цикла обхода ТОГО же списка
Вы удаляете элементы списка при проходе по нему же
Это некорректно во всех языках, даже чисто по логике
 
Назад
Сверху