python:迭代字典,按键排序为int

python:迭代字典,按键排序为int,python,Python,我有一本python字典: steps = {"5":{}, "1":{}} 我需要迭代这个,但是按键排序,就像它们是int一样。钥匙总是一个数字 我试过: def get_key_as_int(key): return int(key) for key in sorted(steps.items(), key=lambda t: get_key_as_int(t[0])): step = steps[key] 但我有一个错误: unhashable type: 'dic

我有一本python字典:

steps = {"5":{}, "1":{}}
我需要迭代这个,但是按键排序,就像它们是int一样。钥匙总是一个数字

我试过:

def get_key_as_int(key):
    return int(key)

for key in sorted(steps.items(), key=lambda t: get_key_as_int(t[0])):
    step = steps[key]
但我有一个错误:

 unhashable type: 'dict'
steps.items()
返回键、值对(元组列表),而不仅仅是键。因此,在您的代码中,您实际上是在尝试:

step=steps[('1',{})]

这将引发错误,因为键不能包含可变项

代码的正确版本:

for key,step in sorted(steps.items(), key=lambda t: get_key_as_int(t[0])):
    #do something with step
for key,step in sorted(steps.items(), key=lambda t: get_key_as_int(t[0])):
    #do something with step