Форум сайта python.su
FishHookТак?
def avgList(l):
return sum(l) / len(l)
shows = {'Секретные материалы': 'фантастика', 'Ведьмак': 'фэнтази', 'Клан Сопрано': 'криминал', '24': 'драма', 'Черное зеркало': 'фантастика', 'Во все тяжкие': 'криминал', 'Игра престолов': 'фэнтази', 'Карточный домик': 'драма', 'Рик и Морти': 'фантастика'} ratings = {'Секретные материалы': 0.9, 'Ведьмак': 0.95, 'Клан Сопрано': 0.8, '24': 0.75, 'Черное зеркало': 0.98, 'Во все тяжкие': 0.85, 'Игра престолов': 0.87, 'Карточный домик': 0.82, 'Рик и Морти': 1} s = {'фантастика':[],'драма':[],'криминал':[],'фэнтази':[]}
Офлайн
Ну да, а где код то?
Офлайн
FishHook
Ну да, а где код то?
shows = {'Секретные материалы': 'фантастика', 'Ведьмак': 'фэнтази', 'Клан Сопрано': 'криминал', '24': 'драма', 'Черное зеркало': 'фантастика', 'Во все тяжкие': 'криминал', 'Игра престолов': 'фэнтази', 'Карточный домик': 'драма', 'Рик и Морти': 'фантастика'} ratings = {'Секретные материалы': 0.9, 'Ведьмак': 0.95, 'Клан Сопрано': 0.8, '24': 0.75, 'Черное зеркало': 0.98, 'Во все тяжкие': 0.85, 'Игра престолов': 0.87, 'Карточный домик': 0.82, 'Рик и Морти': 1} s = {'фантастика':[],'драма':[],'криминал':[],'фэнтази':[]} def avgList(l): return sum(l) / len(l)
Офлайн
i4etverg_ex
Вы же не знаете заранее, какие будут данные. Это программно надо сделать, я же написал - перебрать словарь shows в цикле и по значениям создать новый словарь с ключами “жанр_фильма” и значениями “пустой список”
Отредактировано FishHook (Июнь 25, 2021 17:21:42)
Офлайн
FishHook
s = {'фантастика':,'драма':,'криминал':,'фэнтази':}
shows = {'Секретные материалы': 'фантастика', 'Ведьмак': 'фэнтази', 'Клан Сопрано': 'криминал', '24': 'драма', 'Черное зеркало':
'фантастика', 'Во все тяжкие': 'криминал', 'Игра престолов': 'фэнтази', 'Карточный домик': 'драма', 'Рик и Морти': 'фантастика'}
ratings = {'Секретные материалы': 0.9, 'Ведьмак': 0.95, 'Клан Сопрано': 0.8, '24': 0.75, 'Черное зеркало': 0.98, 'Во все тяжкие': 0.85, 'Игра престолов': 0.87,
'Карточный домик': 0.82, 'Рик и Морти': 1}
for s in shows:
s = {'фантастика': [], 'драма': [], 'криминал': [], 'фэнтази': []}
print(s)
Офлайн
Короче. Я устал. Лыжи по асфальту очень туго едут. Держи решение и не мучай себя
shows = {u'Секретные материалы': u'фантастика', u'Ведьмак': u'фэнтази', u'Клан Сопрано': u'криминал', u'24': u'драма', u'Черное зеркало': u'фантастика', u'Во все тяжкие': u'криминал', u'Игра престолов': u'фэнтази', u'Карточный домик': u'драма', u'Рик и Морти': u'фантастика'} ratings = {u'Секретные материалы': 0.9, u'Ведьмак': 0.95, u'Клан Сопрано': 0.8, u'24': 0.75, u'Черное зеркало': 0.98, u'Во все тяжкие': 0.85, u'Игра престолов': 0.87, u'Карточный домик': 0.82, u'Рик и Морти': 1} l = [ratings[show] for show, genre in shows.items() if genre == u'фантастика'] print sum(l) / len(l)
Офлайн
i4etverg_exпро mean вроде все показали что куда зачем .. добавлю ссылок
om statistics import mean не понимаю и не изучал.
Возможно для чайников есть более длинный код для решения, но с простыми функциями для новичков.
Отредактировано AD0DE412 (Июнь 25, 2021 21:12:10)
Офлайн
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
Офлайн