python教程:[74]列表排序
列表排序,做数据经常用到的一个方法,在python中想实现排序有时候觉得挺难,比如按照行排序或按照列排序,写起来都不简单,今天在这里总结一下在python中实现排序的所有方法,如有不全,请下面留言。
1,简单排序
最简单的排序莫过于直接使用sort对一维的列表排序,创建一个列表
![python教程:[74]列表排序](https://exp-picture.cdn.bcebos.com/604e9556ad042e68cef43d5285f85856d43dd1b0.jpg)
使用sort就地排序(就地排序就是改变了原始list的排序,而sorted不改变原始list数据)
![python教程:[74]列表排序](https://exp-picture.cdn.bcebos.com/a13bbe10bc33ec38d8a6755c295f0c14c37b3cb1.jpg)
可以使用reverse参数进行反向排序。
![python教程:[74]列表排序](https://exp-picture.cdn.bcebos.com/a31e1214c27bd2827494cdf53cb1eef97ebd36b1.jpg)
2,二维列表排序
创建一个二维列表
![python教程:[74]列表排序](https://exp-picture.cdn.bcebos.com/4d3d2ab33c4133ba285c6fce6a37c97623bc2fb1.jpg)
使用operator进行排序,还是sort方法,使用key参数,下面根据第二列数据排序
![python教程:[74]列表排序](https://exp-picture.cdn.bcebos.com/e076d77622bc7dc5ce7947ec5e460596b91429b1.jpg)
多维排序,先根据第一列排序,然而第二列,然后第三列
![python教程:[74]列表排序](https://exp-picture.cdn.bcebos.com/04d7a614f4d0b503c0cc2a4dcc4ec28332bf20b1.jpg)
3,使用lambda函数
lambda函数的排序效率低于operator,所以这个方法可以忽略,但有时候可以实现一些复杂的排序。简单的大小排序用operator,operator无法实现再用lambda
lambda用于写匿名函数,根据第二列数据排序,x表示列表中的元素,x[1]表示元素中的第二个值
![python教程:[74]列表排序](https://exp-picture.cdn.bcebos.com/32fe25ef354f50b8a420c468dc4afa32929c18b1.jpg)
反向排序
![python教程:[74]列表排序](https://exp-picture.cdn.bcebos.com/def3c219ce2c5b1b04c0986f2b39131fcfec0eb1.jpg)
4,元组排序
元组排序和list排序一样,当然还可以对object构成的列表排序,下面创建一个元组构成的列表
![python教程:[74]列表排序](https://exp-picture.cdn.bcebos.com/125ed0ecd3d96975d3da802ad243040149fe09b1.jpg)
使用operator
![python教程:[74]列表排序](https://exp-picture.cdn.bcebos.com/5c2a1ad149299a88120d845667eeadbcbf2f7fb1.jpg)
使用lambda
![python教程:[74]列表排序](https://exp-picture.cdn.bcebos.com/92174dbbf82064fbad155d928e6104a354e96fb1.jpg)
5,根据行排序
上讲的都是根据列的值对行进行的排序,如何根据行的值对列进行排序,我以前觉得numpy中的sort函数可以实现,但是numpy中的sort是对每一行单独的排序,也就是割裂了每列数据的关系,将每一行单独拿出来,进行排序,然后再对下一行进行排序。所以目前我还不知道如何根据行值对列进行排序,除非写复杂的函数。
(共篇)上一篇:下载安装eric4|下一篇:声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:119
阅读量:175
阅读量:59
阅读量:140
阅读量:144