Как отобразить содержимое файла от высшего к низшему
option= input("alphabetically(a), high to low(b)")
if option == "a":
with open('Class4.txt', 'r') as r:
for line in sorted(r):
print(line)
elif option == "b":
def score(line):
return int(line.split(',')[1])
with open('Class4.txt', 'r') as r:
for line in sorted(r, key=score, reverse=True):
print(line)
Я был в состоянии отображать в алфавитном порядке, но не мог отображать от высокого до низкого файла класс 4 содержит имя переменной и счет
АБ 9
я 4
б 6
a10
1 ответ
Файл содержит пустые строки, и вы пытаетесь разбить его на список и получаете доступ ко второму элементу. Вот почему вы получаете IndexError. Так что игнорируйте пустые строки.
А также вы должны сделать line.split(), так как нет запятой
option= input("alphabetically(a), high to low(b)")
if option == "a":
with open('Class4.txt', 'r') as r:
for line in sorted(r):
print(line)
elif option == "b":
def score(line):
if line != '\n':
return int(line.split()[1])
with open('Class4.txt', 'r') as r:
for line in sorted(r, key=score, reverse=True):
print(line)