18. Найти в списке значение, встречающееся большее количество раз (в коде есть строки из следующих тем: "словари").
Условие:
К примеру, список: [1, 5, 2, 1, 5, 3, 2, 1, 2, 3, 2].
Код:
################# первый вариант ###############################
my_list = [1, 5, 2, 1, 5, 3, 2, 1, 2, 3, 2]
result = max(my_list, key=my_list.count) # запись, при которой будет выдавать значение в списке, которое повторяется большее количество раз
print("%75s" % "Число, встречающееся большее количество раз:", result)
################# второй вариант ###############################
### что делать если в списке два значения имеют одинаково максимальные значения количества вхождений? ###
my_list = [1, 5, 2, 1, 5, 3, 2, 1, 2, 3, 2, 1] # новый список, значения 1 и 2 повторяются по 4 раза
my_dict = dict() # создадим словарь, в котором ключ - это цифра, а значение - количество повторений для неё
for i in my_list:
if i not in my_dict:
my_dict[i] = 1
else:
my_dict[i] += 1
max_count = max(my_dict.values()) # такая запись для словаря вернёт максимальное количество повторов искомой цифры
result = [a for a, b in my_dict.items() if b == max_count] # составим новый список. предется перебрать все значения словря в поисках подходящих ключей
print()
print("%75s" % "Числа или число, встречающ(иеся)/(ееся) большее количество раз:", result)