关于排序的问题

原创 2016年08月28日 14:55:57

下午帮一个妹子去处理一个表,有数据三万多条,要实现先把大类排序,然后再把大类中的小类排序。不同的大类里里面可能有相同大小的小类。举个例子,一个地区里面,有不同的学校(号码不同),先把学校号码进行排序,然后再把每个学校的的学生学习名次进行排序。  注意,这里我把每一行前面三项省略了。如下

07537666X 广东兴业金融服务有限公司成都分公司
052529272 成都锦泓恒肽科技有限公司
597251397 成都黑金科技有限公司
577391309 成都市锦江区三圆颈腰椎病研究院
072429826 厦门市智业软件工程有限公司成都分公司
572291114 成都尊美亿容生物科技有限公司
762348740 四川联动通讯有限公司
069765845 成都尚思合文化传播有限公司
592074213 成都几何新媒科技有限公司
20182003X 四川省装璜设计印务中心
050069591 四川华迪航天金穗高技术有限公司成都分公司

  5101 65
5101 65
5101 73
5101 65
5101 75
5101 63
5101 87
5102 65
5102 74
5102 75
5102 72
5102 65


如上图,就是要先把第一列进行排序,然后对第二列进行排序,这个排序就是对每一个大类(如5101)后面的数进行大小排序。得出这样的结果

5101 63
5101 65
5101 65
5101 73
5101 73
5101 87
5101 87
5102 65
5102 65
5102 73
5102 73
5102 87
 

思路是先把每一行写成一个元组,然后写成一个大的列表,


f.write('行政区域'+','+'行业代码'+','+'单位名称'+','+'营业收入'+','+'frdm'+'\n')
items = []
for line in open(path + 'mengting.csv','r'):
    line = line.strip().split(',')
    c = (line[2][:4],line[3][:2],line[1],line[4],line[0])     #这是把原表中每一行写成了一个元组。
    items.append(c)                                                                 #把所有的项写成了一个列表
item = sorted(items, key=lambda x: (`x[0], x[1].lower()))     #对总列表进行排序
x =len(item)
for each in range(x):
    end = list(item[each])
    f.write(end[0]+','+end[1]+','+end[2]+','+end[3]+','+end[4]+'\n')
f.close()


版权声明:

相关文章推荐

java排序问题

二叉排序树的相关问题

二叉搜索树(BST)

java排序的问题

归并排序问题

  • 2013-10-15 08:21
  • 60KB
  • 下载

"几乎已排序"问题——Is this (almost) sorted?

有大量的n个文件,确定他们是否正确地排序需要Ω(n)的时间。斯内普教授于是决定检查这些文件是否“已几乎排好序”。他想知道是否其中90%的论文已被正确排序:即能否能够去除其中的10%,并让剩下的列表进行...

快速归并排序问题

  • 2013-03-01 20:18
  • 52KB
  • 下载

开开心心学算法--快速排序之会场安排问题

快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists)。 步骤为: 从数列中挑出一个元素,称为 "基准"(pivot),...

编程之美烙饼排序问题

内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)