如何在python中的字典列表上进行插入排序?

时间:2013-04-04 01:24:03

标签: python list dictionary insertion-sort

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

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

2 个答案:

答案 0 :(得分:1)

i['key']看起来像是错误。您未在此处使用key变量。

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

此外,您需要在while循环中更改j,否则它可以永久运行

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

答案 1 :(得分:0)

for循环之后的每一个东西都应该缩进1次(无论你用于缩进的空格数是多少) 至于其他任何问题,我都不知道。