Я новичок в Python и пытаюсь что-то узнать о списках.В этом случае моей целью является индексирование, подсчет и удаление всех экземпляров элемента в списке.Индексирование, подсчет и удаление всех отлично работает отдельно, но я изо всех сил пытаюсь объединить его и получить желаемые результаты.Что я делаю не так?
def removing(letter,lst):
'''This function should index and remove all entries of a letter within a list, returning the removed items' position within the original list. I then use len() function on the result-list to determine how many items have been indexed/deleted'''
result=[]
offset= -1
list_new = lst.copy()
while True:
try:
offset=list_new.index(letter, offset+1)
except ValueError:
return result
print('Letter not found.')
result.append(offset)
lst.remove(letter)
Теперь я ожидал, что даже без клонирования списка это сработает, и функция вернет позиции букв и удалит их, но когда я определю lst
и letter
, запустите функцию, а затем скажите:
print(len(removing(letter,lst)))
Всегда отображается 0. Почему это?
РЕДАКТИРОВАТЬ: мне посоветовали вызвать функцию один раз и сохранитьрезультат, но я, когда я делаю следующее, результат тот же:
c=1
print(lst)
while (c==1):
letter=input('What letter do you want to remove?\n')
if letter in lst:
var=removing(letter,lst)
print(var)
print(str(len(var))+' letters have been removed.')
print(lst)
else:
c-1