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)
这有什么不对?
您按名称的第二个字母对人名进行排序,而不是按值对键值对进行排序.'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)