【发布时间】:2020-11-25 09:12:59
【问题描述】:
L.pop(i) 函数有问题。这是我的代码:
L = []
for i in range(3):
value = int(input('Enter value ' + str( i+1)+ ': '))
L.append(value)
print(L)
limit = int(input('Enter a limit: '))
for i in L:
if i > limit:
print('Index of first element over',limit,':',i)
L.pop(i)
break
print(L)
直到那部分:L.pop(i)。
它给了
IndexError: pop index out of range
那么L.pop(i)有什么问题呢?
【问题讨论】:
-
尝试在
L.pop(i)行之前打印i和len(L)- 这应该澄清它;) -
我认为你混淆了
pop(删除索引)和remove(删除元素) -
@tobias_k 你不会也遇到与
remove相同的问题吗? -
@Gsk 取决于你的意思是什么问题。这里实际上没有“循环删除”问题,因为 OP 在删除元素后会中断。但是,尚不清楚 OP 实际想要实现什么,例如删除大于
limit的第一个元素,或全部删除,以及是否应将limit 与元素本身或其索引进行比较。 -
@tobias_k 是的,我的错。在阅读之前进行假设(
.pop()和pop index out of range是经典!)
标签: python python-3.x list indexing spyder