我在排序和输出方面遇到了一个问题。我不知道该怎么做。
该计划的主要思想:
n = int(input())
k = int(input())
data = []
for x in range(1,n+1):
data.append(input().replace(":"," ").split(" "))
for elem in data:
elem.append(int(elem[1])*60+int(elem[2]))
elem.append(int(elem[3])*60+int(elem[4]))
while len(elem)>3:
elem.pop(1)
if elem[1]>elem[2]:
raise SystemExit("time of issuing can not be lower than time putting")
程序的示例输入:
4
2
Qwe 12:45 16:30
Wer 13:55 17:50
Ert 6:25 12:55
Rew 22:55 23:30
输出:
Ert 1
Qwe 2
Wer 2
Rew 1
“Wer”也可以跳过,因为细胞限制(这是一个开始练习,所以它并不意味着你需要这么好的代码来覆盖一切)。我可以尝试解释单元格如何工作,但我认为从示例输出中可以很清楚 - 它基于发布时间和时间进行比较。
我正在尝试学习Python,如果有人会回答我应该做些什么来完成我的脚本,或者更确切地说使用其他想法,那将会很感激。
UPD: 我有这样的事情:
data = sorted(data, key=lambda elem: elem[1])
for elem in data: #Just visual check
print(elem)
for x in data:
if j<=k:
if data[i][2]>data[i+1][1]:
print(data[i][0], j+1)
j+=1
i+=1
else:
j=0
print(data[i][0], j+1)
else:
j=0
但它仍然不是我想要的。有什么想法吗?
答案 0 :(得分:1)
您可以在距离Sorting HOWTO约五分钟内学习Python的基础知识。
在您的脚本中,您似乎正在解析时间,但正在elem[0]
丢失乘客信息。你将需要它进行最后的排序。此外,您已将所有数据附加到一个列表中,而不是将行保持分开(这对于排序是必要的)。
使用Sorting HowTo花几分钟时间,可以帮助您了解如何整理数据以使其可排序。