(Python)一个参数导致另一个参数的列表列表

2024-10-03 06:21:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python2.7.10上编写了一个函数,它读取一个.txt文件,并从该文件的行中列出一个列表,然后按以下参数排序:

  • 提前终止服务的司机优先于其他司机 以后终止的
  • 司机姓名的词典顺序决定了上述每种情况的最终联系。

到目前为止我的代码是:

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=”,但我真的卡住了,没有主意了。 如果有人能帮助我,我将不胜感激


Tags: 文件txt列表参数servicelinefunctionoperator
1条回答
网友
1楼 · 发布于 2024-10-03 06:21:05

两次单独排序将无法正常工作,因为第一次排序的结果将被丢弃

而是直接按两个属性排序:

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

这将为每个项使用一个元组(x[4], x[0])来确定排序x[4]是时间,x[0]是名称

相关问题 更多 >