【发布时间】:2019-06-01 08:43:25
【问题描述】:
字典,其中键是三个分隔的字符,键是不同大小的列表,使用 sort/sorted 函数按值数组的长度对字典进行排序。如果 values 数组的长度相等,则按 key 中的第三个元素(字符)对其进行排序。如果在这种情况下也出现冲突,请按 key 中的第二个元素按升序对其进行排序。字符大小(上/下)无关紧要。
我已经设法按值的长度对其进行排序,但我无法找到解决方案如何找到冲突以及使用其他两个排序规则。
x = {("a", "B", "b"):[2, 0], ("A", "c", "b"):[2,1], ("d", "a", "C"):[0, 0, 0],
("A", "A", "A"):[2], ("e", "e", "t"):[2, 3]}
sort1 = sorted(x.items(), key = lambda x: x[1].__len__())
input = {("a", "B", "b"):[2, 0], ("A", "c", "b"):[2,1], ("d", "a", "C"):[0, 0, 0],
("A", "A", "A"):[2], ("e", "e", "t"):[2, 3]}
expected_output = [(("A", "A", "A"):[2]),(("e", "e", "t"):[2, 3]),
(("A", "B", "b"):[2, 1]),(("a", "c", "b"):[2, 0]),
(("d", "a", "C"),[0, 0, 0])]
【问题讨论】:
-
key like
key = lambda x: (len(x[1],x[1])你明白了:每个标准一个元组项 -
你能解释一下你的预期输出吗?我认为这与您对问题的解释相矛盾。