Как не удалить элементы из списка, который индексируется для удаления элементов из другого списка? - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь удалить некоторые элементы из списка, а необходимые индексы находятся в другом списке.

Я пробовал list.pop (), но он также удаляет элементы из родительского списка,так же, как list.remove ()

sequence = [3, 6, 5, 8, 10, 20, 15]
sortS = sorted(sequence)
seq = sequence
for i in range(len(sequence)):
    seq.remove(sequence[i])
    sortS.remove(sequence[i])


print(sequence)
>>>[]

1 Ответ

1 голос
/ 05 мая 2019

Используйте .copy(), когда вы назначаете 1 элемент списка другому. В Python он просто ссылается на эту переменную, и если в эту переменную будут внесены какие-либо изменения, будет сделана ссылка и на нее.

При использовании .copy() будет создано новое пространство памяти, и любые изменения в нем не будут влиять на исходные

sequence = [3, 6, 5, 8, 10, 20, 15]
sortS = sorted(sequence)
seq = sequence.copy()
for i in range(len(sequence)):
    seq.remove(sequence[i])
    sortS.remove(sequence[i])


print(sequence)

вывод

[3, 6, 5, 8, 10, 20, 15]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...