0
我有一个排序和输出问题。我不知道我该怎么做。问题与排序和输出
该方案的主要思想:乘客
- 输入总量。
- 输入单元格的总量。
- 输入n次乘客的数据(基于第一个输入) - 例如:Qwe 11:25 12:34。
- 输出分类数据。输出应该是这样的:乘客的姓名,单元号。该方案的
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
“疫情周报” 也可以被跳过,因为细胞的限制(这是一个开始锻炼,所以它并不意味着你需要一个能覆盖所有东西的好代码)。我可以尝试解释单元格是如何工作的,但我认为从示例输出中可以清楚地看出 - 它基于发布时间和比较时间。
我想学习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
但它仍然不是很我想要的。有任何想法吗?
了类似 数据=排序(数据,键=拉姆达ELEM:ELEM [1]) 但任何想法我怎么能正确地跟踪手机号码?我的意思是,需要比较elem [2]和next elem [1]并重复它?我很不确定我该怎么做。 – 2013-04-06 10:08:40