Почему pop () и del () не индексируют проблему? ПОЖАЛУЙСТА, ИСПРАВИТЬ - PullRequest
0 голосов
/ 06 октября 2019

Пример списка: ['Red', 'Green', 'White', 'Black', 'Pink', 'Yellow']

Ожидаемый результат: ['Green', 'White', 'Black']

, поэтому я попытался использовать remove(), pop(), del(), но с такой же проблемой при индексации. он принимает «красный» в качестве индекса [0], но пропускает «зеленый» и принимает «белый» в качестве индекса [1], где «зеленый» должен быть [1]

я написал это

del List[0]

del List[4]

del List[5]

print(List)

Я получаю эту ошибку:

del List[5]
IndexError: list assignment index out of range

, но когда я пишу это

del List[0]

del List[4]

del List[3]

print(List)

, я получаю желаемый результат. Почему?

Ответы [ 4 ]

3 голосов
/ 06 октября 2019

Каждый раз, когда вы удаляете элемент, номер индекса для каждого элемента изменяется в новом списке.

List= ['Red', 'Green', 'White','Black', 'Pink', 'Yellow']

del List[0]

Теперь в списке есть ['Зеленый', 'Белый', 'Черный', 'Розовый', 'Желтый']

Теперь 'Зеленый' - это индекс 0 и 'Желтый'Индекс 4.

del List[4]

Теперь «Желтый» удален.

Поскольку теперь нет элемента с индексом 5, приведенный ниже код выдаст ошибку.

del List[5]
0 голосов
/ 06 октября 2019

Давайте возьмем ваш код построчно:

Код 1:

lst= ['Red', 'Green', 'White','Black', 'Pink', 'Yellow']
del lst[0] # lst = ['Green', 'White','Black', 'Pink', 'Yellow']
del lst[4] # lst = ['Green', 'White','Black', 'Pink']
del lst[5] # error as the max index remaining in the updated list is 3
print(lst)

Код 2

lst= ['Red', 'Green', 'White','Black', 'Pink', 'Yellow']
del lst[0] # lst = ['Green', 'White','Black', 'Pink', 'Yellow']
del lst[4] # lst = ['Green', 'White','Black', 'Pink']
del lst[3] # lst = ['Green', 'White','Black']
print(lst)
0 голосов
/ 06 октября 2019

Изначально:

List= ['Red', 'Green', 'White','Black', 'Pink', 'Yellow']

del List [0]

Дает:

List= ['Green', 'White','Black', 'Pink', 'Yellow']

del List [4]

Дает:

List= ['Green', 'White','Black', 'Pink']

del List [5]

Выдает ошибку. Поскольку длина списка просто 4.

0 голосов
/ 06 октября 2019

Вы начали с этого списка = ['Red', 'Green', 'White', 'Black', 'Pink', 'Yellow']

On ---> del List [0]«Красный» удаляется

Ваш список - список = ['Зеленый', 'Белый', 'Черный', 'Розовый', 'Желтый'] индекс равен 0, 1, 2, 3, 4

on --- del List [4]

'Yellow' Получает сейчас удалено List = ['Green', 'White', 'Black', 'Pink'] index 0, 1, 2, 3

on --- del List [5] Вы пытаетесь получить доступ к индексу, который не существует, поскольку список List теперь имеет индекс от 0 до 3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...