字典按不正确的顺序排序

Che*_*ole -1 python dictionary

请参阅以下我的代码:

import operator
mydict = {'carl': 4,
          'alan': 2,
          'bob': 1,
          'danny': 3}

for i in sorted(mydict,key=operator.itemgetter(1),reverse=True):
    print ("%s: %d" % (i,mydict[i]))
Run Code Online (Sandbox Code Playgroud)

我有输出:

bob: 1
alan: 2
carl: 4
danny: 3
Run Code Online (Sandbox Code Playgroud)

我期待:

bob: 1
alan: 2
danny: 3
carl: 4
Run Code Online (Sandbox Code Playgroud)

这有什么不对?

use*_*ica 7

您按名称的第二个字母对人名进行排序,而不是按值对键值对进行排序.'carl'并且'danny'都有第二封信'a'.

如果你想要一个dict的键值对,请使用它items():

for k, v in sorted(mydict.items(), key=operator.itemgetter(1)):
    print('{}: {}'.format(k, v))
Run Code Online (Sandbox Code Playgroud)