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

如何在python中对字典列表进行插入排序?,python,list,dictionary,insertion-sort,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[

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

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
def insertionsort(所有数据,键):
对于所有数据中的i:
温度=所有数据[i]
j=i
而j>0和alldata[i['key']
i['key']
看起来像是个错误。这里没有使用
变量

作为一个条件,尝试
alldata[i][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
def insertionsort(所有数据,键):
对于所有数据中的i:
温度=所有数据[i]
j=i
而j>0和alldata[i][key]
i['key']
看起来像是个错误。这里没有使用
变量

作为一个条件,尝试
alldata[i][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
def insertionsort(所有数据,键):
对于所有数据中的i:
温度=所有数据[i]
j=i
而j>0和alldata[i][key]
for循环之后的每件事情都应该再缩进1次(无论缩进使用的空格数是多少)
至于其他问题,我不知道。

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

你这样做是为了教育目的吗?如果不是,只需将
排序
参数一起使用即可。@Yes用于教育目的!您需要在
for
循环之后缩进所有内容。此外,您还可以在(dict_a,dict_b)中使用
for(key_a,key_b):
获取密钥,然后在第二个for循环中进行比较。@movrev非常感谢!我理解缩进部分,但不幸的是,由于我对python非常陌生,我不知道如何完成你建议的第二部分,你能给我看一些示例代码吗?我的意思是让你这样使用:
for(key_I,key_j)in(alldata[I],alldata[j-1]):
。你这样做是出于教育目的吗?如果不是,只需将
排序
参数一起使用即可。@Yes用于教育目的!您需要在
for
循环之后缩进所有内容。此外,您还可以在(dict_a,dict_b)中使用
for(key_a,key_b):
获取密钥,然后在第二个for循环中进行比较。@movrev非常感谢!我理解缩进部分,但不幸的是,由于我对python非常陌生,我不知道如何完成你建议的第二部分,你能给我一些示例代码吗?我想让你这样使用:
for(key\u I,key\u j)in(alldata[I],alldata[j-1]):