我有这个字典(dic),其中键是字符串,但字符串实际上只是数字。
我无法找到迭代排序字符串的方法(因为排序字典不会按数字排序)
for j in sorted([int(k) for k in dic.iteritems()]):
print dic[str(j)] #converting the integer back into a string for the key
它给了我
KeyError异常
直观地说,这应该有效,但我不明白为什么它没有。
答案 0 :(得分:8)
dict.iteritems()
返回2元组,无法将其转换为整数。
for j in sorted(dic, key=int):
print dic[j]
答案 1 :(得分:0)
除了使用key=int
之外,您还可以稍微修改现有的理解:
for _, value in sorted((int(key), dic[key]) for key in dic):
print(value)
它不是那么好但是如果你不仅需要解锁你的钥匙而且要打开你的价值观,那么这是另一种选择。
使用iteritems,您需要在理解中进行额外的解包:
for _, value in sorted((int(key), value) for key, value in dic.iteritems()):
print(value)