Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 维护dict值的排序视图?_Python_Sorting_Dictionary - Fatal编程技术网

Python 维护dict值的排序视图?

Python 维护dict值的排序视图?,python,sorting,dictionary,Python,Sorting,Dictionary,我有一个包含50000个整数值的dict,还有一个包含100个整数值的键的集合。我的内部循环以不可预测的方式递增或递减dict项的值 我需要定期用集合中尚未存在的最大元素的键替换集合中的一个成员。另一方面,如果对dict项进行了排序,那么在调用此例程之间,排序的顺序将发生轻微的变化,而不是显著的变化 每次重新排序整个dict似乎都是浪费,尽管考虑到它已经“几乎”被排序了,可能就没那么浪费了。虽然我可能会犯过早优化的错误,但性能将很重要,因为这将运行大量的迭代,因此我认为有必要询问我的上级是否有一

我有一个包含50000个整数值的dict,还有一个包含100个整数值的键的集合。我的内部循环以不可预测的方式递增或递减dict项的值

我需要定期用集合中尚未存在的最大元素的键替换集合中的一个成员。另一方面,如果对dict项进行了排序,那么在调用此例程之间,排序的顺序将发生轻微的变化,而不是显著的变化

每次重新排序整个dict似乎都是浪费,尽管考虑到它已经“几乎”被排序了,可能就没那么浪费了。虽然我可能会犯过早优化的错误,但性能将很重要,因为这将运行大量的迭代,因此我认为有必要询问我的上级是否有一种明显更有效和更符合Python的方法


我知道dict“视图”的概念,即随着内容的变化而更新内容的窗口。有“排序视图”这样的东西吗?

你可以使用一个对象,它有一个整洁的
最常见的(n)
方法

返回n个最常见元素的列表及其从最常见到最少的计数


你的字典钥匙是什么?在你再次寻找最大值之前,会对值进行多少次修改?键是整数范围(50000),在我需要找到最大值的时间之间可能会有50次左右的修改。顺便说一句,我不应该说“增量或减量”:-更准确地说,它们的变化量通常为+/-1,但总是小于其最大值的10%。然后使用
计数器
对象(如Francesco所建议的)可能是一种方法。