请参阅下面的我的代码:
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]))
我得到了输出:
bob: 1
alan: 2
carl: 4
danny: 3
我期待:
bob: 1
alan: 2
danny: 3
carl: 4
这里有什么问题?
答案 0 :(得分:7)
您按名称的第二个字母对人名进行排序,而不是按值对键值对进行排序。 'carl'
和'danny'
都有第二个字母'a'
。
如果你想要一个dict的键值对,请使用它的items()
:
for k, v in sorted(mydict.items(), key=operator.itemgetter(1)):
print('{}: {}'.format(k, v))
答案 1 :(得分:2)
您需要传递mydict.items()。这有效:
cc_library(
name = "target",
srcs = [
"@local_jdk//:jni_header",
"@local_jdk//:jni_md_header-linux",
"hello.cc",
],
includes = [
"external/local_jdk/include",
"external/local_jdk/include/linux",
],
linkstatic = 1
)