python3 自定义排序_Python3中的自定义排序

我开始学习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;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值