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)