Не работает remove(i)

Сделал программу которая удаляет из парных чисел списка все которые кратные 3, но оно то удаляет то нет

import random
list=random.sample(range(1,20),10)
print(list)
par=[]
for i in list:
    if i % 2 == 0:
        par.append(i)

print(par)
for i in par:
   if i % 3 == 0:
      par.remove(i)

print(par)

Ответы (1 шт):

Автор решения: Zhihar

а вы оригинал :)

удалять из списка по которому при этом еще и двигаетесь - тут последствия вообще непредсказуемые могут быть!

вам по хорошему надо или на каждый remove начинать свой новый for или просто собрать новый вектор

res = [i for i in par if i % 3 != 0]

ну или через filter

res = filter(lambda i: i % 3 != 0, par)
→ Ссылка