python:迭代字典,按键排序为int
我有一本python字典: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
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