i4etverg_ex
Работает, спасибо большое) я имел ввиду, что from statistics import mean не понимаю и не изучал.
Возможно для чайников есть более длинный код для решения, но с простыми функциями для новичков.
shows = {'Секретные материалы': 'фантастика', 'Ведьмак': 'фэнтази', 'Клан Сопрано': 'криминал', '24': 'драма',
'Черное зеркало':
'фантастика', 'Во все тяжкие': 'криминал', 'Игра престолов': 'фэнтази', 'Карточный домик': 'драма',
'Рик и Морти': 'фантастика'}
ratings = {'Секретные материалы': 0.9, 'Ведьмак': 0.95, 'Клан Сопрано': 0.8, '24': 0.75, 'Черное зеркало': 0.98,
'Во все тяжкие': 0.85, 'Игра престолов': 0.87,
'Карточный домик': 0.82, 'Рик и Морти': 1}
# собираем список жанров которые даны
genres = set(shows.values())
# создаем словарь жанров со списком рейтингов(пока пустой)
dict_genres = {}
for i in genres:
dict_genres[i] = []
print(dict_genres) # предварительно посмотрим что получилось
print('------------------>')
for genre in dict_genres:#для каждого жанра из словаря жанров
for film in ratings:#для каждого фильма из словаря рейтингов
if shows[film] == genre:#если значение жанра фильма из словаря shows равно текущему жанру из словаря жанров
dict_genres[genre].append(ratings[film])#добавляем значение рейтинга в список текущего жанра
print(dict_genres)#смотрим что получилось
print('------------------>')
# создаем функцию подсчета среднего значения списка
def average_value(l):
return sum(l) / len(l)
# создаем итоговый словарь жанр:среднее значение (пока пустой)
average_ratings_genres = {}
for genre in dict_genres:#для каждого жанра из словаря жанров
average_ratings_genres[genre] = average_value(dict_genres[genre])# заполняем словарь используя функцию подсчета
print(average_ratings_genres) #смотрим что получилось
{'криминал': [], 'фэнтази': [], 'фантастика': [], 'драма': []}
------------------>
{'криминал': [0.8, 0.85], 'фэнтази': [0.95, 0.87], 'фантастика': [0.9, 0.98, 1], 'драма': [0.75, 0.82]}
------------------>
{'криминал': 0.825, 'фэнтази': 0.9099999999999999, 'фантастика': 0.96, 'драма': 0.7849999999999999}
Process finished with exit code 0