
Какое есть объяснение такого поведения?
def de(data): [data.remove(i) for i in data if data.count(i) == 1] x = [1, 2, 4, 3, 5, 7, 8] de(x)
Условие не при чем, кажется.
def de(data): [data.remove(i) for i in data if data.count(i) == 1] x = [1, 2, 4, 3, 5, 7, 8] de(x)
DenLadonспасибо
После удаления первого элемента 1, генератор обращается ко второму элементу списка data. Но так один элемент уже удален то вторым элементом будет не 2, а 4.