1

我有一个带有各种键的字典列表,它们都是整数,我需要编写一个使用插入排序的函数来按特定键对它们进行排序。

def insertionsort(alldata, key):
    for i in alldata :
    temp = alldata[i]
    j = i
    while j > 0 and alldata[i['key']] < alldata[j - 1['key']]: # no idea how to put this
        alldata[j] = alldata[j-1]
    alldata[j] = temp
4

2 回答 2

1

i['key']看起来像错误。你没有key在这里使用你的变量。

尝试alldata[i][key] < alldata[j - 1][key]作为条件

您还需要更改j您的 while 循环,否则它可以永远运行

def insertionsort(alldata, key):
    for i in alldata :
        temp = alldata[i]
        j = i
        while j > 0 and alldata[i][key] < alldata[j - 1][key]:
           alldata[j] = alldata[j - 1]
           j -= 1
        alldata[j] = temp
于 2013-04-04T01:40:50.660 回答
0

for 循环之后的每一件事都应该再缩进 1 次(无论你使用多少个空格来缩进) 至于其他问题,我不知道。

于 2013-04-04T01:43:59.683 回答