ここにテキストファイルが説明されています。Pythonのテキストファイルをソートしてキーの最高値と最低値を見つける方法は?
Frank,Jones,[email protected],0126497428, 2, 10, 0, 0,
FName, LName, Email, Number, Division, Points, ..., ...,
目的:コードは、区分底部と各部門の上位2つのスコアプレーヤー、-1または+1をとるべきです。低スコアなら+1、高得点なら-1。だから、ある部門に6人がいたら、2人は上がるだろう、2人は下がるだろうし、2人は同じ部門にとどまるだろう。
コードは、テキストファイル全体を、値[4]に依存せず除算として分類します。どのように私は目的を完了するのですか?
私のコード今のところ:
f = open('players.txt', 'r')
lines = []
for line in f.readlines():
line = [x.strip() for x in line.split(',')]
line[4] = int(line[4])
line[5] = int(line[5])
lines.append(line)
f.close()
values = sorted(list(set([l[4] for l in lines])),reverse=True)
max_values = (values[0], values[1])
for line in lines:
if line[5] in max_values:
line[4] += 1
else:
line[4] -= 1
with open('players.txt', 'w') as f:
for line in lines:
line = [str(x) for x in line]
f.write(', '.join(line) + '\n')
は
テキストファイル:
Frank,Jones,[email protected],0126497428, 2, 10, 0, 0,
Liam,Blair,[email protected],01273846273, 2, 9, 0, 0,
Iain,Wilkins,[email protected],01293847328, 2, 9, 0, 0,
Pat,Phillips,[email protected],01283948392, 2, 10, 0, 0,
Edward,Costello,[email protected],01475937837, 3, 8, 0, 0,
John,Brown,[email protected],01283345539, 3, 4, 0, 0,
Tim,Pratchett,[email protected],, 3, 12, 0, 0,
Eleanor,House,[email protected],01274535823, 3, 12, 0, 0,
Gregory,Davies,[email protected],, 4, 10, 0, 0,
Tina,Turner,[email protected],01782519345, 4, 4, 0, 0,
Sally,Stevens,[email protected],01245538432, 4, 3, 0, 0,
John,Lennon,[email protected],01245934723, 4, 3, 0, 0,
望ましい結果:
Frank, Jones, [email protected], 0126497428, 1,0,0,0,
Liam, Blair, [email protected], 01273846273, 3,0,0,0,
Iain, Wilkins, [email protected], 01293847328, 3,0,0,0,
Pat, Phillips, [email protected], 01283948392, 1,0,0,0,
Edward, Costello, [email protected], 01475937837, 4,0,0,0,
John, Brown, [email protected], 01283345539, 4,0,0,0,
Tim, Pratchett, [email protected],, 2,0,0,0,
Eleanor, House, [email protected], 01274535823, 2,0,0,0,
Gregory, Davies, [email protected],, 4,0,0,0,
Tina, Turner, [email protected], 01782519345, 4,0,0,0,
Sally, Stevens, [email protected], 01245538432, 5,0,0,0,
John, Lennon, [email protected], 01245934723, 5,0,0,0,
誰もがこれに対する答えを持っていますか?それは可能なのか?
希望する出力の最後の2行目: '5,0,0、、'あなたは**に番号がないことを望みますか? –
申し訳ありません、それはエラーでした。変更されました。ありがとう – Toby
私が正しく理解していれば、Edward Costelloは4,0,0,0になります。 – polku