【发布时间】:2020-12-29 23:45:11
【问题描述】:
我有一个字典:
count2:defaultdict(<class 'list'>, {'i': [3, 2, 2, 1], 'w': [2, 2], 'p': [2, 2], 'd': [2, 2], 'm': [2, 2], 'y': [2, 2, 2, 1], 'x': [2, 2, 4, 1], 'j': [2, 2], 'o': [2, 1], 'r': [2, 1]})
当我尝试使用排序时
ordered = dict(sorted(count2.items(), key=operator.itemgetter(1), reverse=True))
它并不总是像我想要的那样对其进行排序。 (该值必须具有最大的数字,然后下降)所以它返回:
orderedStart:{'i': [3, 2, 2, 1], 'x': [2, 2, 4, 1], 'y': [2, 2, 2, 1], 'w': [2, 2], 'p': [2, 2], 'd': [2, 2], 'm': [2, 2], 'j': [2, 2], 'o': [2, 1], 'r': [2, 1]}
除了x 应该在i 前面,因为4 > 3 之外,一切都是正确的。
是不是某些索引的优先级更高?
为了方便用户,这里是一个使用相同代码的排序良好的列表示例。
之前:
count2:defaultdict(<class 'list'>, {'r': [2, 2, 2, 1], 'g': [2, 1], 'e': [3, 1], 'n': [5, 1], 't': [4, 1], 'i': [2, 1], 'o': [5, 1], 'm': [2, 1]})
之后:
{'n': [5, 1], 'o': [5, 1], 't': [4, 1], 'e': [3, 1], 'r': [2, 2, 2, 1], 'g': [2, 1], 'i': [2, 1], 'm': [2, 1]}
【问题讨论】:
标签: python python-3.x list sorting dictionary