私はディレクトリ内のすべてのファイルを読み込み、各ファイルから最高の値をリストに追加するコードを持っています。問題は、番号10を認識しますが、すべての番号0-9を認識することです。各ファイルには、各人の最後の3つのスコア(1-10)が含まれています。しかし、人の得点が10の場合、プログラムはその値を最高値として読み取っておらず、ファイルから2番目に高い値を選択し、その値をリストに追加します。コードは、スコアが10でなければ正常に動作します。コードは、各個人の最高スコアに従ってリストをソートする必要があります。これは正常に機能しますが、誤ったスコアをリストに追加するため、誤ってソートすることもあります。例えばmax()は2桁の数字を認識しませんか?
:
[3、6、8]、最高スコアは8であり、問題はない
[6、10、10]、最高のスコアは9であり、なぜですか?
コードの関連するセクションは以下のとおりです。 P.S.私はすべてのモジュールをインポートし、開始時にすべての変数を宣言しています(ここには表示されません)ので、問題はありません。すべてのヘルプ
scores = []
for file in os.listdir(path):
file = os.path.join(path, file)
if os.path.isfile(file):
with open(file, 'r') as txt_file:
scores.append(max(str(n.strip()) for n in txt_file))
results = list(zip(files, scores))
results.sort(key=operator.itemgetter(1), reverse=True)
student_list = [x + ": " + y for x, y in results]
あなたは文字列を比較しているので、 '' 9 ">" 10 "' –