使用python

时间:2016-01-27 19:16:13

标签: python sorting

我正在尝试对以下列表进行排序:

SKP3_CHU;20160101;0.0;Reproceso;
SKP3_CHU;20160102;10.4186115265;Reproceso;
SKP3_CHU;20160103;13.4833335876;Reproceso;
SKP3_CHU;20160104;16.0980548859;Reproceso;
SKP3_CHU;20160105;6.93333339691;Falta Espacio;
SKP3_CHU;20160106;5.93333339691;Falta Espacio;
SKP3_CHU;20160107;6.28138732918;Falta Espacio;
SKP3_CHU;20160108;13.0666666031;Falta Demanda;
SKP3_CHU;20160109;17.3333339691;Falta Demanda;
SKP3_CHU;20160110;17.3333339691;Falta Demanda;
SKP3_CHU;20160111;17.3333339691;Falta Demanda;
SKP3_CHU;20160112;17.3333339691;Falta Demanda;
SKP3_CHU;20160113;18.2833347321;Falta Demanda;
SKP3_CHU;20160114;14.0166664124;Falta Demanda;
SKP3_CHU;20160115;18.2833347321;Falta Demanda;
SKP3_CHU;20160116;18.2833347321;Falta Demanda;
SKP3_CHU;20160117;18.2833347321;Falta Demanda;
SKP3_CHU;20160118;18.2833347321;Falta Demanda;
SKP3_CHU;20160119;17.5166664124;Falta Demanda;
SKP3_CHU;20160120;18.2833347321;Falta Demanda;
SKP3_CHU;20160121;14.0166664124;Falta Demanda;
SKP3_CHU;20160122;18.2833347321;Falta Demanda;
SKP3_CHU;20160123;18.2833347321;Falta Demanda;
SKP3_CHU;20160124;18.2833347321;Falta Demanda;
SKP3_CHU;20160125;18.2833347321;Falta Demanda;
SKP3_CHU;20160126;16.75;Falta Demanda;
SKP3_CHU;20160127;18.2833347321;Falta Demanda;
SKP3_CHU;20160128;14.0166664124;Falta Demanda;
SKP3_CHU;20160129;18.2833347321;Falta Demanda;
SKP3_CHU;20160130;18.2833347321;Falta Demanda;
SKP3_CHU;20160131;18.2833347321;Falta Demanda;
SKP3_CHU;20160104;0.851945877;Falta Espacio;
SKP3_CHU;20160107;6.05194568622;Falta Demanda;

使用以下代码:

regist.sort(key = operator.itemgetter(0,3,1))

但是最后两个项目总是在底部结束,是我订购错误的方式,还是我应该添加其他东西?

修改 添加注册列表的代码:

var = str(Linea) + ";" + str(bkt) + ";" + str(val502) + ";;0;"
regist.append(var)

我省略了一些在文本文件中写入一些数据的行

1 个答案:

答案 0 :(得分:0)

假设您已将所有内容写入文件:

import csv

getter = operator.itemgetter(0,3,1)

with open('path/to/file') as infile:
    answer = sorted(list(csv.reader(infile, delimiter=';')) key=lambda row:(row[0], row[3], int(row[1])))