Думаю, вы сбиваете с толку pop
(удалить элемент по индексу) и remove
(удалить сам элемент). С помощью for i in L:
вы повторяете элементы, но затем в ваших print
и L.pop(i)
вы обрабатываете их как индекс.
Предполагая, что вы хотите напечатать index первого element , который больше limit
, а затем удалить этот элемент, вы можете попробовать следующее:
for i in range(len(L)):
if L[i] > limit:
print('Index of first element over',limit,':',i)
L.pop(i)
break
Или это:
for i, e in enumerate(L)::
if e > limit:
print('Index of first element over',limit,':',i)
L.pop(i) # or L.remove(e), but pop might be a bit faster
break
Примечание. Удаление элементов из список, будь то remove
или pop
, при повторении одного и того же списка, как правило, немного проблематично c. В этом случае это нормально, так как вы break
из l oop сразу после удаления элемента, но имейте это в виду, если вы хотите расширить это, например, удалив все элементы, которые больше чем limit
.