输入:
a = {'555': ['350975553655799810'], '333: ['234000479699468290'], '488': ['298803528183447552', '298069263703474177', '292721536517931008', '252858117883297792', '376836317469736961', '476413939975192578']}
出局:
a = {'488': ['298803528183447552', '298069263703474177', '292721536517931008', '252858117883297792', '376836317469736961', '476413939975192578'], '555': ['350975553655799810'], '333: ['234000479699468290']}
按字典值将字典从最大数组到最小数组排序。 救命!
答案 0 :(得分:0)
除非我对这个问题有误解,否则我认为您没有正确使用字典。我尝试在评论中要求澄清,但这似乎无济于事。
字典在键值对系统上工作。这意味着您使用键而不是传统索引(0、1、2,...)来访问值。
例如,假设我们有一个字典调用d
{ 'fruits': ['apple', 'banana', 'orange'], 'vegetables': ['carrot', 'potato'] }
在此字典中,我们通过调用['apple', 'banana', 'orange']
访问数组d['fruits']
。
从某种意义上说,我们不会谈论字典的“排序”:
{ '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])
然后,您将使用sorting algorithm of your choice对这两者进行排序。将它们都排序后,您将遍历keys
列表,并将相应的值添加到原始字典中。
for i in range(len(keys)):
d[keys[i]] = elements[i]
这将为您提供一个新字典,其中最小的键与最小的(按长度)列表配对。 (可选)以与键数组相反的方式对elements数组进行排序,以使最大的键与最小的列表配对。