Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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 按值对字典进行排序,从最大数组到最小数组。蟒蛇3_Python 3.x_Python 3.5 - Fatal编程技术网

Python 3.x 按值对字典进行排序,从最大数组到最小数组。蟒蛇3

Python 3.x 按值对字典进行排序,从最大数组到最小数组。蟒蛇3,python-3.x,python-3.5,Python 3.x,Python 3.5,输入: { 'vegetables': ['carrot', 'potato'], 'fruits': ['apple', 'banana', 'orange'] } 输出: 按值对字典进行排序,从最大数组到最小数组。 救命啊 我认为你没有正确使用这本词典,除非我误解了这个问题。我试着在评论中要求澄清,但这似乎没有帮助 字典在键值对系统上工作。这意味着您使用一个键,而不是传统的索引(0,1,2,…)来访问该值 例如,假设我们有一个字典名为d a = {'488': ['298803528183

输入:

{ 'vegetables': ['carrot', 'potato'], 'fruits': ['apple', 'banana', 'orange'] }
输出:

按值对字典进行排序,从最大数组到最小数组。
救命啊

我认为你没有正确使用这本词典,除非我误解了这个问题。我试着在评论中要求澄清,但这似乎没有帮助

字典在键值对系统上工作。这意味着您使用一个键,而不是传统的索引(0,1,2,…)来访问该值

例如,假设我们有一个字典名为d

a = {'488': ['298803528183447552', '298069263703474177', '292721536517931008', '252858117883297792', '376836317469736961', '476413939975192578'], '555': ['350975553655799810'], '333: ['234000479699468290']}
在本词典中,我们通过调用
d['fruits']
来访问数组
['apple','banana','orange']

我们不会像以前那样谈论“订购”词典:

{ 'fruits': ['apple', 'banana', 'orange'], 'vegetables': ['carrot', 'potato'] }
考虑到数据类型,这样做毫无意义


你可能会问一些不同的问题。如果您希望执行以下操作:

输入:

{ 'vegetables': ['carrot', 'potato'], 'fruits': ['apple', 'banana', 'orange'] }
输出:

{ '1': ['x', 'y', 'z'], '2': ['x'], '3': ['x', 'y'] }
这样做的方法是首先创建一个键数组,然后创建一个元素数组:

{ '1': ['x'], '2': ['x', 'y'], '3': ['x', 'y', 'z'] }
然后,您将使用一个。对这两个键进行排序后,您将遍历
列表,并将相应的值添加到原始字典中

keys = list(d.keys())
elements = list()
for k in keys:
    elements.append(d[k])

这将为您提供一个新字典,其中最小的键与最小的(按长度)列表配对。或者,按与键数组相反的方式对元素数组进行排序,使最大的键与最小的列表配对。

您尝试了什么?你具体需要什么帮助?你能补充一些说明吗?您是否试图将数组移动到字典中的不同位置(即,从555键的值移动到488键的值)?如果你想对字典重新排序,那没有任何意义。字典使用键值对系统。它不像数组那样按索引排序。我需要按数组中的元素数对字典排序。我尝试了这个选项:
list\u of_sorted\u pairs=[(k,dictionary[k])for k in sorted(dictionary.keys(),key=dictionary.get,reverse=True)]
“我需要根据数组中的元素数对字典进行排序。”这意味着什么?您是否正在将数组排列为与不同的键关联?我需要字典的排列方式使第一对、键:值、数组长度的值必须是最大的,按顺序排列。您的思路正确。我需要这样的排序,只是为了让它是降序的,并且值的键保持不变。我试图告诉你,没有办法对字典进行排序,并使值的键保持不变。这根本不是字典的工作原理!我认为有一个解决办法,只是不明显。
for i in range(len(keys)):
    d[keys[i]] = elements[i]