Python 在字典中迭代X次

Python 在字典中迭代X次,python,for-loop,dictionary,Python,For Loop,Dictionary,假设字典包含10个以上的键值对。字典应该按(整数的)值排序。打印出前10个值(以及相应的键)。我认为有一个比我在这里给出的更好的解决方案 for keys in sorted(x): c=c+1 if c>10: break else: print keys, x['keys'] 字典键上没有定义顺序,因此“第一个”键没有很好地定义。具体地说,使用x.keys()[:10]字典键没有定义顺序,因此“第一个”键没有很好地定义。具体来说,使用x.ke

假设字典包含10个以上的键值对。字典应该按(整数的)值排序。打印出前10个值(以及相应的键)。我认为有一个比我在这里给出的更好的解决方案

for keys in sorted(x):
   c=c+1
   if c>10:
      break
   else:
      print keys, x['keys']

字典键上没有定义顺序,因此“第一个”键没有很好地定义。具体地说,使用
x.keys()[:10]

字典键没有定义顺序,因此“第一个”键没有很好地定义。具体来说,使用
x.keys()[:10]
可以更轻松地完成您的操作

topten = sorted(x.items(), key=lambda x:-x[1])[:10]

对于真正大的<代码> DICT<代码>,您应该考虑使用HEAPQ

from heapq import nlargest
for key in nlargest(10, x, key=x.get):
    print key, x[key]

对于真正大的<代码> DICT<代码>,您应该考虑使用HEAPQ

from heapq import nlargest
for key in nlargest(10, x, key=x.get):
    print key, x[key]

您可以使用以下代码在
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]))
不要担心整数和用代码递增它们。你不需要它们


简单易读,易于维护

您可以使用以下代码在
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]))
不要担心整数和用代码递增它们。你不需要它们


简单易读,易于维护

Python中没有“前10个”字典条目的概念,因为字典是无序的。你是说“任意10条”吗?是的,任意10条都可以。对不起,更正。我需要按值降序(整数值)对其排序。打印前十个值。您可能希望编辑问题以反映此更正。感谢t提醒。Python中没有“前十个”词典条目的概念,因为词典是无序的。你是说“任意10条”吗?是的,任意10条都可以。对不起,更正。我需要按值降序(整数值)对其排序。打印前十个值。您可能希望编辑您的问题以反映此更正。感谢t提醒。gnibbler先生,您的解决方案与在迭代过程中生成键/值对的-topten=sorted(x.items(),key=lambda x:x[1],reverse=True)[:10]有什么区别。我的只会交出钥匙。您可以同时尝试这两种方法,看看哪一种更有效。Nibbler先生,您的解决方案与这个-topten=sorted(x.items(),key=lambda x:x[1],reverse=True)[:10]之间的区别是什么,它在您迭代时生成键/值对。我的只会交出钥匙。你可以同时尝试这两种方法,看看哪一种更有效