按多个规则排序

时间:2019-06-01 08:43:25

标签: python sorting

字典,其中的键是三个单独的字符,并且键是不同大小的列表,请使用sort / sorted函数按值数组的长度对该字典进行排序。如果values数组的长度相等,则按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])]

1 个答案:

答案 0 :(得分:0)

可以为 fgets(name, 20, stdin); 参数使用tuple
在这里,我使用key函数以降序模式对字符进行排序。

ord
相关问题