我有一个带有各种键的字典列表,所有键都是整数,我需要编写一个使用插入排序按特定键对它们进行排序的函数。
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
答案 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次(无论你用于缩进的空格数是多少) 至于其他任何问题,我都不知道。