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

Я пытаюсь удалить последний элемент списка / массива, даже если есть повторяющиеся элементы. EG
list = ["h","e","l","l","o"," ","t","h","e","r,"e"]
Это приведет к удалению последнего "e", но не второго и девятого "e"

Я уже пробовал
finalSentence.remove([finalSentence[len(finalSentence)-1]])
Однако это удаляет случайную букву, я знаю, что это потому, что она удаляет букву, а не номер элемента, и Python не знает, какую выбрать, так чтоявляется случайным, который удаляется.Но я не знаю другого способа заставить это работать

Ответы [ 2 ]

2 голосов
/ 13 апреля 2019

.remove удаляет первое вхождение элемента.Вы можете сделать что-то вроде

del my_list[len(my_list) - 1]

Или просто:

del my_list[-1]

Или, возможно, самый идиоматичный:

my_list.pop()

Обратите внимание, что вышеприведенные методы работают в (амортизируется постоянное время, и они изменяют my_list на месте.

1 голос
/ 13 апреля 2019

Не используйте list в качестве имени переменной, так как оно может конфликтовать со встроенным типом.Но попробуйте следующее:

mylist = mylist[:-1]

Использует срез от начала списка до последнего элемента, но не включая его.Если список пуст, видимых изменений нет.Если вы хотите, чтобы возникла ошибка, вы должны использовать один из методов @ juanpa.arrivillaga.

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