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函数只能按第一列或者最后一列排序,这个如果我想按照中间一列排序就会非常麻烦,以上。