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 3.x 在对值排序时保留字典的键_Python 3.x_Sorting_Dictionary - Fatal编程技术网

Python 3.x 在对值排序时保留字典的键

Python 3.x 在对值排序时保留字典的键,python-3.x,sorting,dictionary,Python 3.x,Sorting,Dictionary,我有以下排序功能: orderedX = np.array(list(to_sort.values()))\ [np.array(list(to_sort.values())).argmax(axis=1).argsort(), :] 但我想改变它,这样orderedX就变成了一个包含to_sort项的字典,而不仅仅是一个值列表。因此,它的排序方式是正确的,但是在进行此操作时,是否有某种方法可以跟踪关键点 to_sort是一个包含键和值的dict,其中每个值都是一个np数组。字典的问题是它们通

我有以下排序功能:

orderedX = np.array(list(to_sort.values()))\
[np.array(list(to_sort.values())).argmax(axis=1).argsort(), :]
但我想改变它,这样orderedX就变成了一个包含to_sort项的字典,而不仅仅是一个值列表。因此,它的排序方式是正确的,但是在进行此操作时,是否有某种方法可以跟踪关键点


to_sort是一个包含键和值的dict,其中每个值都是一个np数组。字典的问题是它们通常不保持顺序。即使Python3.6对dict的实现进行了更改,也有人说“不应该依赖这个新实现的顺序保持方面[…]这是另一个详细解释的问题,请特别注意Martijn Pieters的答案

尽管如此,仍然有
集合。orderdict
具有订单保留功能。下面是如何从数据中创建一个具有所需排序的。请注意,我尝试稍微简化排序算法,据我所知,排序算法按
中数组的最大值排序,以_sort
的值:

from collections import OrderedDict
ordered = OrderedDict(sorted(to_sort.items(), key=lambda item:np.max(item[1])))
像这样迭代将为您提供键和值,其中的值按排序顺序排列:

for key, value in ordered.items():
    print(key, value)

你能举一个输入和输出的小例子来说明你要做什么吗?