Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 25, 2021 08:59:11

i4etverg_ex
Зарегистрирован: 2021-06-23
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помочь с решением

Всем привет.
Прошу подскажите как вычислить средний рейтинг жанра фантастика используя 2 словаря.

shows = {'Секретные материалы': 'фантастика', 'Ведьмак': 'фэнтази', 'Клан Сопрано': 'криминал', '24': 'драма', 'Черное зеркало':
'фантастика', 'Во все тяжкие': 'криминал', 'Игра престолов': 'фэнтази', 'Карточный домик': 'драма', 'Рик и Морти': 'фантастика'}

ratings = {'Секретные материалы': 0.9, 'Ведьмак': 0.95, 'Клан Сопрано': 0.8, '24': 0.75, 'Черное зеркало': 0.98, 'Во все тяжкие': 0.85, 'Игра престолов': 0.87,
'Карточный домик': 0.82, 'Рик и Морти': 1}

Отредактировано i4etverg_ex (Июнь 25, 2021 09:00:58)

Офлайн

#2 Июнь 25, 2021 11:50:24

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Прошу помочь с решением

 from statistics import mean
print(mean([ratings[i] for i in ratings if shows[i] == 'фантастика']))



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#3 Июнь 25, 2021 12:43:55

i4etverg_ex
Зарегистрирован: 2021-06-23
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помочь с решением

AD0DE412
этот вариант не работает( либо я ещё не знаком с from statistics и import mean)
загрузить фото

Офлайн

#4 Июнь 25, 2021 12:48:33

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

Прошу помочь с решением

i4etverg_ex
этот вариант не работает
да неужль .. отож
 In [2]: shows = {'Секретные материалы': 'фантастика', 'Ведьмак': 'фэнтази', 'Кл 
   ...: ан Сопрано': 'криминал', '24': 'драма', 'Черное зеркало':               
   ...:          'фантастика', 'Во все тяжкие': 'криминал', 'Игра престолов': ' 
   ...: фэнтази', 'Карточный домик': 'драма', 'Рик и Морти': 'фантастика'}      
   ...:                                                                         
   ...: ratings = {'Секретные материалы': 0.9, 'Ведьмак': 0.95, 'Клан Сопрано': 
   ...:  0.8, '24': 0.75, 'Черное зеркало': 0.98, 'Во все тяжкие': 0.85, 'Игра  
   ...: престолов': 0.87,                                                       
   ...:            'Карточный домик': 0.82, 'Рик и Морти': 1}                   
                                                                                
In [3]: from statistics import mean                                             
   ...: print(mean([ratings[i] for i in ratings if shows[i] == 'фантастика']))  
0.96       
ну и ладно .. тоже мн .. пдумаещ ..



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#5 Июнь 25, 2021 13:16:22

i4etverg_ex
Зарегистрирован: 2021-06-23
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помочь с решением

AD0DE412
from statistics import mean
print(mean([ratings for i in ratings if shows == ‘фантастика’]))
Работает, спасибо большое) я имел ввиду, что from statistics import mean не понимаю и не изучал.
Возможно для чайников есть более длинный код для решения, но с простыми функциями для новичков.

Офлайн

#6 Июнь 25, 2021 13:27:31

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Прошу помочь с решением

i4etverg_ex
Безусловно, но вам надо предоставить весь математический аппарат.
Давайте начнем с того, что “как вычислить средний рейтинг…”. Забудем про два словаря. Допустим, у нас есть такие данные:

 lst = [0.8, 1.1, 0.97, 0.65, 0.7]

ваша задача - вычислить среднее значение элементов этого списка



Офлайн

#7 Июнь 25, 2021 13:35:43

i4etverg_ex
Зарегистрирован: 2021-06-23
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помочь с решением

FishHook
i4etverg_exБезусловно, но вам надо предоставить весь математический аппарат. Давайте начнем с того, что “как вычислить средний рейтинг…”. Забудем про два словаря. Допустим, у нас есть такие данные:
Сложить и разделить на количество , получим среднее 0.844.
По логике, как я думаю необходимо выделить из первого списка фильмы с жанром фантастика, затем каким-то образом взять из второго списка их рейтинг сложить и разделить на количество.
for i in ratings:
if shows[i] == 'фантастика':
Дальше ступор

Офлайн

#8 Июнь 25, 2021 14:06:08

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Прошу помочь с решением

i4etverg_ex
Вы пришли за помощью, и я вам помогу. Но вы должны активно участвовать. Я выше попросил вас написать код. Давайте вы не словами мне расскажете, как будете вычислять среднее значение списка, а дадите решение в виде кода. Так мы с вами шаг за шагом получим нужное решение.



Офлайн

#9 Июнь 25, 2021 14:28:00

i4etverg_ex
Зарегистрирован: 2021-06-23
Сообщения: 18
Репутация: +  0  -
Профиль   Отправить e-mail  

Прошу помочь с решением

FishHook
i4etverg_exВы пришли за помощью, и я вам помогу. Но вы должны активно участвовать. Я выше попросил вас написать код. Давайте вы не словами мне расскажете, как будете вычислять среднее значение списка, а дадите решение в виде кода. Так мы с вами шаг за шагом получим нужное решение.
Хорошо, спасибо Вам.
lst = [0.8, 1.1, 0.97, 0.65, 0.7]
a = sum(lst) / len(lst)
print(a)
Я бы сделал так.

Офлайн

#10 Июнь 25, 2021 14:43:26

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Прошу помочь с решением

Отлично! Давайте теперь поместим ваш код в функцию, чтобы отвязать его от конкретных данных и легко переиспользовать. Тут я помогу.

   
def avgList(l):
    return sum(l) / len(l)
  
lst = [0.8, 1.1, 0.97, 0.65, 0.7]
print(avgList(lst))
  
lst = [0.18, 0.1, 0.77]
print(avgList(lst))

полдела сделано. Мы умеем вычислять среднее для любого списка. Значит, если у нас будет вот такая структура:
 s = {'фантастика': [0.9, 0.6, 0], 'драма': [0, 0.5, 0.6]}
мы сможем пройтись по всем ключам и для каждого применим фукцию avgList. Логично?
Ваша следующая задача создать такую структуру. Будем делать это поэтапно. Вам надо получить пустой словарь s. То есть пройти по всем значениям словаря shows и создать новый словарь вида
 s = {'фантастика': [], 'драма': []}







Отредактировано FishHook (Июнь 25, 2021 14:45:01)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version