【发布时间】:2020-08-06 08:47:58
【问题描述】:
如果我们想根据列表的所有索引进行比较,而不仅仅是第一个元素。如果列表相同,则按键排序。列表的长度也是事先不知道的。在那种情况下如何对键进行排序。下面是例子:
{'A': [5, 0, 0], 'B': [0, 2, 3], 'C': [0, 3, 2]}
输出:
[A、C、B]
说明:A 位于第 1 位,因为第 0 索引 5 最高,其余为 0。C 位于第 2 位,因为 C 的第 2 1 索引与 B 的第 1 索引相比为 3。如您所见,我们需要比较对所有位置进行排序,我们事先不知道数组大小。
我试过下面的代码:
countPos = {'A': [5, 0, 0], 'B': [0, 2, 3], 'C': [0, 3, 2]}
res = sorted(countPos.items(), key=lambda x: ((-x[1][i]) for i in range(3)))
上述代码出错。有人可以帮我解决这个问题吗?
【问题讨论】:
标签: python-3.x sorting dictionary