0
我试图创建一个插入排序,它从列表中取最小的数字并将其附加到另一个列表。插入排序索引错误?
问题是,我试图从列表中弹出()数字,我得到一个索引错误。
这里是我的代码:
alist = [2,9,8,6,1]
blist =[]
def insertsort(list, slist) :
for item in list:
smallest = list[0]
if item < smallest:
smallest = list[item]
list.pop(smallest)
slist.append(smallest)
insertsort(alist, blist)
print(blist)
和错误是:提前任何帮助
IndexError: pop index out of range
感谢。
听起来像是你应该'进口heapq'和使用'名单= heapq.heapify(名单)'遵循而不是通过'list'循环,从而找到通过为'heapq.heappop重复调用(名单)',最小手工使用'list.pop()'。 'heapq'模块是标准Python库的一部分,专门用于有效跟踪序列中最小的值。 – jez