首页 > 解决方案 > 了解列表`pop index out of range`

问题描述

我正在尝试按升序排列生成的列表。

remove在我的 while 循环中使用有效。但是,如果我使用pop,我会不断收到 IndexError: Pop index out of range。

values我还尝试在执行最后一次迭代时增加列表的长度;到while len(values) > 1,我仍然遇到同样的错误。

谁能解释为什么我在使用 pop 而不是在使用 remove 时不断收到此错误?


#import randrange
from random import randrange

#generate a list of values
values = []
for i in range(1, 10):
   values.append(randrange(1, 10))
print(values)

#initiate list for keeping minimum values
new_values = []

#define how least value would be determined
while len(values) > 0 :
   new_values.append(min(values))
   values.pop(min(values))


print(new_values)

标签: pythonlistloops

解决方案


您在编写时提供直接值 pop values.pop(min(values)),而不是您必须提供索引位置。


推荐阅读