Python按键排序,打破关系

rre*_*ase 0 python sorting lambda key

original = ["aga", "aaa", "aba"]

dict = {
    "aba": 1,
    "aaa": 0,
    "aga": 1
}
Run Code Online (Sandbox Code Playgroud)

我需要按dict值排序,并且断路器需要保持原始顺序,我该怎么做?示例非常简化.

我试过了:

final = sorted(sorted(original, key=lambda x: (dict[x]), key=original.index))
Run Code Online (Sandbox Code Playgroud)

Mos*_*oye 5

只需根据字典中的值对它们进行排序.原始订单将保留为关系:

final = sorted(original, key=dct.get)
print final
# ['aaa', 'aga', 'aba']
Run Code Online (Sandbox Code Playgroud)

Timsort - Python的标准排序算法 -稳定 ; 比较相等的项目保留其相对顺序.

另外请注意,不要使用类似名称dictlist避免在以后的代码中使内置函数无法使用.