-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest1.py
22 lines (19 loc) · 1.17 KB
/
test1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#Функция принимает на вход список сводной информации по абитуриентам (candidates)
#и возвращает список с именами 20 человек, набравших наибольшее СУММАРНОЕ
#количество баллов (с учетом extra баллов), которые станут студентами
#университета. Пример входных данных приведен ниже.
#Пример входных данных:
candidates = [
{"name": "Vasya", "scores": {"math": 58, "russian_language": 62, "computer_science": 48}, "extra_scores":0},
{"name": "Fedya", "scores": {"math": 33, "russian_language": 85, "computer_science": 42}, "extra_scores":2},
{"name": "Petya", "scores": {"math": 92, "russian_language": 33, "computer_science": 34}, "extra_scores":1}
]
def find_top_20(candidates: list) -> list:
s_candidates = sorted(
candidates,
key = lambda c: (
-sum(c['scores'].values()),
-sum([c['scores']['math'], c['scores']['computer_science']])
)
)
return [candidate['name'] for candidate in s_candidates[:20]]