Python合并两个字典
我想返回一个字典,其中的值是按值的降序长度排序的列表 前 必须给予Python合并两个字典,python,sorting,dictionary,Python,Sorting,Dictionary,我想返回一个字典,其中的值是按值的降序长度排序的列表 前 必须给予 data = {'t': [4,5,6], 'r': [4,3],'n': [1,6]} 然后,在第一次排序之后,我希望按照字母顺序对相同长度的值进行排序,如 data = {'t': [4,5,6], 'n': [1,6], 'r': [4,3]} 有办法吗?您不能对常规Python字典进行排序。他们没有秩序。但是,您可以使用collections.OrderedDict: 结果是: OrderedDict([('t',
data = {'t': [4,5,6], 'r': [4,3],'n': [1,6]}
然后,在第一次排序之后,我希望按照字母顺序对相同长度的值进行排序,如
data = {'t': [4,5,6], 'n': [1,6], 'r': [4,3]}
有办法吗?您不能对常规Python字典进行排序。他们没有秩序。但是,您可以使用collections.OrderedDict: 结果是:
OrderedDict([('t', [4, 5, 6]), ('r', [4, 3]), ('n', [1, 6])])
lambda pair:lenpair[1]是键函数,因此给定一个键、值对,它返回值的长度。如果两个对的值长度相同,您还可以使用lenpair[1]键按字母顺序排序。您无法对常规Python字典进行排序。他们没有秩序。但是,您可以使用collections.OrderedDict: 结果是:
OrderedDict([('t', [4, 5, 6]), ('r', [4, 3]), ('n', [1, 6])])
lambda pair:lenpair[1]是键函数,因此给定一个键、值对,它返回值的长度。如果两对的值长度相同,您也可以使用lenpair[1],key按字母顺序排序。这个问题已经被问了好几次,例如,请参阅。但是如果您决定可以返回类似['t',[4,5,6],'n',[1,6],'r',[4,3]]的列表,那么这里的人可以提供帮助。这个问题已经被问了好几次,例如,请参阅。但是如果您决定可以返回类似['t'、[4,5,6]、'n'、[1,6]、'r'、[4,3]]的列表,那么这里的人可以提供帮助。我认为OP需要pair[0]或pair[0]。第二个元素是lower。我使用了-lenpair[1],pair[0]。低位为元组,不能反转。@DSM:我不确定键名或值是否会打破关系。我将省略这一部分,然后按字母顺序阅读句子,它是按值的长度,然后按键的字母顺序,但我可能误读了它,而且很可能还有其他未指定的标准。我认为OP需要pair[0]或pair[0]。第二个元素是lower。我使用了-lenpair[1],pair[0]。低位为元组,不能反转。@DSM:我不确定键名或值是否会打破关系。我就不谈这一部分了,我读字母顺序句子的方式是按值的长度,然后按键的字母顺序,但我可能会误读,而且很可能还有其他未指定的标准。。
OrderedDict([('t', [4, 5, 6]), ('r', [4, 3]), ('n', [1, 6])])