reverse=True
вот задание:
Рейтинг таксистов
Руководитель таксопарка хочет увидеть отчет по всем таксистам, где нужно указать имя таксиста и его среднюю оценку. Информацию в отчете нужно расположить по убыванию средней оценки таксиста.
После каждого успешно выполненного заказа, клиент выставляет таксисту оценку - целое число от 1 до 5.
Входные данные
Программа будет принимать строки, в которых сперва указывается имя таксиста, а затем через запятую с пробелом его оценка за заказ.
Строка “конец” является последней строкой и означает окончание ввода
Выходные данные
Нужно расположить таксистов в порядке убывания их средней оценке и вывести имя каждого таксиста и его среднюю оценку в отдельной строке. В случае совпадения средних оценок расположить таксистов нужно отсортировать имена таксистов по алфавиту
Sample Input 1:
Джек, 2
Джек, 3
Билл, 5
Билл, 4
Билл, 4
Билл, 3
конец
Sample Output 1:
Билл 4.0
Джек 2.5
Sample Input 2:
Зина, 5
Зина, 3
Гермиона, 4
Гермиона, 4
конец
Sample Output 2:
Гермиона 4.0
Зина 4.0
Мой код:
d ={} while True: x = input().split(',') if x[0] == 'конец': break d.setdefault(x[0], []).append(int(x[1])) [print(k, sum(v) / len(v)) for k,v in sorted(d.items(), key=lambda x: (sum(x[1])/len(x[1]), x[0]), reverse=True)]