0

並べ替えと出力で 1 つの問題が発生しました。どうすればいいのかわかりません。

プログラムの主なアイデア:

  1. 乗客の合計金額を入力します。
  2. 細胞の総量を入力します。
  3. 乗客のデータを n 回入力します (最初の入力に基づく) - 例: Qwe 11:25 12:34。
  4. ソートされたデータを出力します。出力は次のようになります: 乗客の名前、セル番号。
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

しかし、それはまだ私が望むものではありません。何か案は?

4

1 に答える 1

1

Sorting HOWTOから約 5 分で Python の基本を学ぶことができます。

あなたのスクリプトでは、時間を適切に解析しているように見えますが、 の乗客情報が失われていelem[0]ます。これは、最終的な並べ替えに必要になります。また、行を分けておくのではなく、すべてのデータを 1 つのリストに追加しました (これは並べ替えに必要です)。

Sorting HowTo に数分費やすと、データを整理して並べ替え可能にする方法を理解するのに役立ちます。

于 2013-04-06T04:37:37.963 に答える