Если у меня есть немного Python, как:Как удалить все совпадения в списке Python?
n = [1, 3, 5, 1]
n.remove(1)
print n
п вернется [3, 5, 1]
, потому что .remove()
Завершает после того, как находит свой первый матч. Что я мог сделать, чтобы вернуть только [3, 5]
, найдя все совпадений (или в этом случае все 1
s)?
Если я ошибаюсь, и есть оптимизация интерпретатора, это не технически операция на месте. Вы создаете список в новом регионе в памяти, а затем копируете его в область памяти исходного списка. –
Да, временная копия сделана для назначения среза. Когда я говорю «на месте», я имею в виду, что 'n' все еще ссылается на тот же список (с измененным содержимым), а не на' n', привязанный к совершенно другому списку. Это действительно имеет значение, если есть другие ссылки на список. –