python list数组排序

用python自带的sorted函数就行,非常好用,网上搜半天都用numpy,不但不好用还很麻烦,下面记录sorted怎么用,和用numpy出了什么问题

1,sorted对list数组排序

    data_sort=sorted(data, key=lambda x:x[3],reverse=True)

以上这个语句就行,源list数组是data, 根据list数组的第四列数据排序,按倒序排序

如果源数据是[[1,2,3,4],[3,4,2,1],[3,4,5,6]],最后data_sort的数据是[[3,4,5,6],[1,2,3,4],[3,4,2,1]],而源数组data保持源数据不变

2,用numpy有什么问题,网上搜到的资料基本上都是让用numpy的array和lexsort函数,我实际应用的这个场景,最终也没能成功排序,有两个问题

   一.

 如果list中的数据有字符串和数据,那么在应用完numpy的函数后,所有数据都会强制转换为str类型,而后续排序中,数字排序和str类型排序的结果是很不  一样 的,如,数据 3和23,如果是数字排序,3要做23前面,如果是字符串排序,23在3前面

 

  二.

用numpy的array和lexsort函数只能按第一列或者最后一列排序,这个如果我想按照中间一列排序就会非常麻烦,以上。

 

posted @ 2022-10-09 10:24  mghhz816  阅读(116)  评论(0编辑  收藏  举报