假设字典包含10个以上的键值对。字典应该按值(整数)排序。打印出前10个值(和相应的键)。我认为这里有一个更好的解决方案。
for keys in sorted(x):
c=c+1
if c>10:
break
else:
print keys, x['keys']
答案 0 :(得分:5)
for key in sorted(x, key=x.get, reverse=True)[:10]:
print key, x[key]
对于非常大的dict
,您应该考虑使用heapq
from heapq import nlargest
for key in nlargest(10, x, key=x.get):
print key, x[key]
答案 1 :(得分:1)
字典键上没有定义顺序,所以"首先"键没有明确定义。具体来说,您使用x.keys()[:10]
更容易完成的工作。
答案 2 :(得分:0)
topten = sorted(x.items(), key=lambda x:-x[1])[:10]
答案 3 :(得分:0)
您可以使用以下代码对dict
进行X遍历。
Python 3.8
def highest_contributor(self, top=1):
slice_dict_only_to_keys = list(self.contributors.keys())[:top]
for _key in slice_dict_only_to_keys:
self.log("Top Contributor: {} ({})".format(_key, self.contributors[_key]))
不用担心整数和代码中增加整数的问题。您不需要它们。
简单,可读且可维护。