Найти - Пользователи
Полная версия: Прошу помочь с решением
Начало » Python для новичков » Прошу помочь с решением
1 2
i4etverg_ex
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
Ну да, а где код то?
i4etverg_ex
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)
FishHook
i4etverg_ex
Вы же не знаете заранее, какие будут данные. Это программно надо сделать, я же написал - перебрать словарь shows в цикле и по значениям создать новый словарь с ключами “жанр_фильма” и значениями “пустой список”
i4etverg_ex
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)

так?
FishHook
Короче. Я устал. Лыжи по асфальту очень туго едут. Держи решение и не мучай себя

 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)
AD0DE412
i4etverg_ex
om statistics import mean не понимаю и не изучал.
Возможно для чайников есть более длинный код для решения, но с простыми функциями для новичков.
про mean вроде все показали что куда зачем .. добавлю ссылок
https://tproger.ru/translations/guide-into-python-imports/
https://docs.python.org/3/library/statistics.html
ну и прочее
https://pythonist.ru/generatory-python-ih-sozdanie-i-ispolzovanie/

зы эээ рекомендую хотя бы просто что то прочитать по … эээ что вас там интересует
xam1816
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
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB