並べ替えと出力で 1 つの問題が発生しました。どうすればいいのかわかりません。
プログラムの主なアイデア:
- 乗客の合計金額を入力します。
- 細胞の総量を入力します。
- 乗客のデータを 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
"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
しかし、それはまだ私が望むものではありません。何か案は?