python多列排序_python多列排序

python的sort()和sorted()函数可以进行多列排序。在一个文本或者列表有多列时,这是一个很好用的技巧。

首先,看一下待排序的数据

这是一个csv文件,它有6列,我们需要首先对第一列排序,再对第六列排序

46896961,192100485,1,95wf5sm,1863,2014-12-18 15

39716997,265509650,1,94k0ped,6058,2014-11-18 19

40907060,362837862,1,,12819,2014-12-08 04

118420067,331756810,1,,6054,2014-12-13 19

18261127,268564109,1,,2771,2014-12-17 19

17042777,72469526,1,,1863,2014-12-11 23

104414180,141928375,1,,1863,2014-12-09 19

28375714,258478694,1,,8095,2014-12-06 14

132940744,46626071,1,9752qdo,4230,2014-11-27 21

46896961,10879448,1,95wf59q,11279,2014-12-11 23

把数据读到列表里面,列表调用sort()函数进行排序,sort()函数多列排序的格式为 list.sort(key = lambda x:(第一列,第六列)),因为读到列表里面的字符串有换行符,可以对第六列进行切片操作。由于第六列是规范的日期格式,所以自己用字符串比较大小是可行的。如果日期不是规格化的,可以把年月日取出,转为int型比较大小。

代码实现为:

reader_list.sort(key = lambda x: (x.split(‘,‘)[0], x.split(‘,‘)[5][-14:-1]))

原文:http://www.cnblogs.com/lkprof/p/4415288.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值