我开始学习python3。
我想知道如何执行自定义排序。例如,我可能希望按照以下方式对动物列表进行排序:先按字符升序排序,然后按长度降序排序,然后按字母数字升序排序。在
一个由“蚂蚁”、“羚羊”、“斑马”、“食蚁兽”组成的列表在正确排序后会变成“食蚁兽”、“羚羊”、“蚂蚁”、“斑马”。在
我读了一些文档,但不太了解sort方法的“key”参数。有什么例子吗?
附言:这不是大学作业问题。我只是想玩一下python。在
我很早以前就学会了java,可能已经实现了如下自定义排序:
在import java.util.*;
public class sortDemo implements Comparator {
public static void main(String[] args) {
ArrayList animals = new ArrayList();
animals.add("ant");
animals.add("antelope");
animals.add("zebra");
animals.add("anteater");
for (String a:animals){
System.out.println(a);
}
System.out.println();
// want output to be anteater, antelope, ant, zebra following the sort
Collections.sort(animals, new sortDemo());
for (String a:animals){
System.out.println(a);
}
}
public int compare(String s1, String s2) {
if (s1.charAt(0) > s2.charAt(0)){
return 1;
} else if (s1.charAt(0) == s2.charAt(0)){
if(s1.length() < s2.length()) {
return 1;
} else if (s1.length() == s2.length()) {
return s1.compareTo(s2);
} else {
return -1;
}
} else {
return -1;
}
}
}