|
13 | 13 | {'first_name': 'Петя'}, |
14 | 14 | ] |
15 | 15 | name_of_students = [students[name]['first_name'] for name in range(len(students))] |
| 16 | +uniq_name = [] |
16 | 17 |
|
17 | | -for name in range(len(students)): |
18 | | - print(f'{students[name]["first_name"]}: {name_of_students.count(students[name]["first_name"])}') |
| 18 | +for name in name_of_students: |
| 19 | + if name not in uniq_name: |
| 20 | + uniq_name.append(name) |
19 | 21 |
|
| 22 | +for name in range(len(uniq_name)): |
| 23 | + print(f'{uniq_name[name]}: {name_of_students.count(students[name]["first_name"])}') |
20 | 24 |
|
21 | 25 | # Задание 2 |
22 | 26 | # Дан список учеников, нужно вывести самое часто повторящееся имя |
|
29 | 33 | {'first_name': 'Маша'}, |
30 | 34 | {'first_name': 'Оля'}, |
31 | 35 | ] |
32 | | -name_of_students = [students[name]['first_name'] for name in range(len(students))] |
33 | | -print(name_of_students) |
| 36 | + |
| 37 | +def max_name(students): |
| 38 | + name_of_students = [students[name]['first_name'] for name in range(len(students))] |
| 39 | + |
| 40 | + names_counter = dict() |
| 41 | + for name in name_of_students: |
| 42 | + if name in names_counter: |
| 43 | + names_counter[name] += 1 |
| 44 | + else: |
| 45 | + names_counter[name] = 1 |
| 46 | + |
| 47 | + max_names = [] |
| 48 | + max_count = 0 |
| 49 | + |
| 50 | + for name, count_of_name in names_counter.items(): |
| 51 | + if count_of_name > max_count: |
| 52 | + max_count = count_of_name |
| 53 | + max_names = [name] |
| 54 | + elif count_of_name == max_count: |
| 55 | + max_names.append(name) |
| 56 | + return f'Самое частое имя среди учеников: {"".join(max_names)}' |
34 | 57 |
|
35 | 58 |
|
| 59 | +print(max_name(students)) |
36 | 60 | # Задание 3 |
37 | 61 | # Есть список учеников в нескольких классах, нужно вывести самое частое имя в каждом классе. |
38 | 62 | # Пример вывода: |
|
55 | 79 | {'first_name': 'Саша'}, |
56 | 80 | ], |
57 | 81 | ] |
58 | | -# ??? |
59 | | - |
| 82 | +print(max_name(school_students[0])) |
| 83 | +print(max_name(school_students[1])) |
| 84 | +print(max_name(school_students[2])) |
60 | 85 |
|
61 | 86 | # Задание 4 |
62 | 87 | # Для каждого класса нужно вывести количество девочек и мальчиков в нём. |
|
76 | 101 | 'Миша': True, |
77 | 102 | 'Даша': False, |
78 | 103 | } |
79 | | -# ??? |
| 104 | + |
| 105 | +male_gender = 0 |
| 106 | +female_gender = 0 |
| 107 | + |
| 108 | +for class_i in range(len(school)): |
| 109 | + lst_of_class = [class_x for class_x in school[class_i]['students']] |
| 110 | + for i in range(len(lst_of_class)): |
| 111 | + if is_male.get(lst_of_class[i]['first_name']) == 1: |
| 112 | + male_gender += 1 |
| 113 | + else: |
| 114 | + female_gender += 1 |
| 115 | + print(f'Класс {school[class_i]["class"]}: девочки {female_gender}, мальчики {male_gender}') |
| 116 | + male_gender = 0 |
| 117 | + female_gender = 0 |
80 | 118 |
|
81 | 119 |
|
82 | 120 | # Задание 5 |
|
0 commit comments