Текстовый файл объяснил:В: Как поместить значения в ключи в текстовом файле в порядок от самого большого - самого маленького? (Питон 2.7.11)
Joe,Bloggs,[email protected],01269512355, 1 , 20, 0, 0, 0
fname, lname, email, number, ..., number i want to order ^, ...,...,..
Текстовый файл:
Joe,Bloggs,[email protected],01269512355, 1,20, 0, 0, 0
Sarah,Brown,[email protected],01866522555, 1,25, 0, 0, 0
Andrew,Smith,[email protected],01899512785, 1,30, 0, 0, 0
Ray,Charles,[email protected],01268712321, 1,3, 0, 0, 0
Kevin,White,[email protected],01579122345, 1,0, 5, 0, 0
Samantha,Collins,[email protected],04269916257, 1,0, 0, 0, 0
цель: я хочу, чтобы иметь возможность поставить ключи, чтобы на основе результатов значения [5]. Таким образом, легче изменить значение [4], так как мне нужно, чтобы верхние 2 скоринга и младшие 2 скоринговые клавиши изменили значение [4]. Как это так, высокий 2 значение [4] - 1, наименьшее значение оценка [4] + 1.
Текстовый файл после того, как код был бежать:
Andrew,Smith,[email protected],01899512785, 0,30, 0, 0, 0
Sarah,Brown,[email protected],01866522555, 0,25, 0, 0, 0
Joe,Bloggs,[email protected],01269512355, 1,20, 0, 0, 0
Kevin,White,[email protected],01579122345, 1,5, 0, 0, 0
Ray,Charles,[email protected],01268712321, 2,3, 0, 0, 0
Samantha,Collins,[email protected],04269916257, 2,0, 0, 0, 0
код, который я до сих пор:
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')
Это мой код, и это довольно сложно. Кажется, он не работает так, как я хочу, потому что он вызывает эту ошибку.
max_values = (values[0], values[1])
IndexError: list index out of range
Не стесняйтесь полностью переписать мой код, чтобы сделать его лучше. Я новичок в кодировании и поэтому еще не знаю, что делать.
Я думаю, вы пропустите понимаете. Я хочу, чтобы клавиши были упорядочены в порядке возрастания от самого большого к наименьшему из значений [5]. Затем я хочу, чтобы верхние 2 в этом списке и нижняя 2 имели значение [4]. @Prune – Toby
Я понимаю. Однако ваши клавиши имеют значения ** [5] **. Ваш ** отсортированный ** оператор собирает ключи из ** значений [4] **. – Prune
благодарим вас за исправление. Теперь он работает красиво :) – Toby