2015-11-22 45 views
0

我在Python 2.7.10上編寫了一個函數,該函數讀取.txt文件,並將文件中的行從列表中排除參數:(Python)帶有一個參數的列表導致另一個參數

  • 司機早先終止他們的服務的優先權高於 後來終止;
  • 駕駛員姓名的字典順序決定了每種情況下的最終關係。

到目前爲止我的代碼:

import operator #imported before function 
INDEXArrivalHour = 4 #imported before function 
inFile = open("services0604.txt", "r")  
inFile = inFile.readlines()[7:] 
servicesList = [] 
for line in inFile: 
    servicesList.append(line.rstrip().split(", ")) 
servicesList = sorted(servicesList, key = operator.itemgetter(INDEXArrivalHour)) 

return servicesList 

從打印功能結果:

[ 
    ['Maria Conceicao'<-#driver name, '13-GH-88', 'John Tush', '11:30', '11:50'<-#hour her service ends, 'alfama', '30', 'charges'], 
    ['Josefino Branco', '07-BB-99', 'Louis Amber', '11:05', '11:50', 'baixa', '45', 'terminates'], 
    ['Dominique Bart', '04-TY-86', 'Sarah Lino', '11:10', '12:10', 'lumiar', '80', 'terminates'], 
    ['Tiago Quaresma', '17-VI-90', 'Paulo Silva', '12:05', '12:30', 'alvalade', '30', 'terminates'] 
] 

由第二個參數的第一個列表應該來第二列表之後。我嘗試過使用兩個分開的sorted(),但它沒有完成這項工作,我玩過「key =」,但我很困惑並且沒有想法。 我很高興如果有人能幫助我

回答

1

排序兩次,但單獨不會正常工作,因爲你會扔掉第一次排序的結果。

相反,排序兩個屬性直接:

servicesList.sort(key=lambda x: (x[4], x[0])) 

這將使用一個元組(x[4], x[0])每個項目來確定排序。 x[4]是時間,而x[0]是這個名字。

相關問題