Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.55 KB | None | 0 0
  1. oscar_data = [
  2.     ['Форма воды', 2017, 6.914, 123, ['фантастика', 'драма'], 19.4, 195.243464],
  3.     ['Лунный свет', 2016, 6.151, 110, ['драма'], 1.5, 65.046687],
  4.     ['В центре внимания', 2015, 7.489, 129, ['драма', 'криминал', 'история'], 20.0, 88.346473],
  5.     ['Бёрдмэн', 2014, 7.604, 119, ['драма', 'комедия'], 18.0, 103.215094],
  6.     ['12 лет рабства', 2013, 7.71, 133, ['драма', 'биография', 'история'], 20.0, 178.371993],
  7.     ['Операция "Арго"', 2012, 7.517, 120, ['триллер', 'драма', 'биография'], 44.5, 232.324128],
  8.     ['Артист', 2011, 7.942, 96, ['драма', 'мелодрама', 'комедия'], 15.0, 133.432856],
  9.     ['Король говорит!', 2010, 7.977, 118, ['драма', 'биография', 'история'], 15.0, 414.211549],
  10.     ['Повелитель бури', 2008, 7.298, 126, ['триллер', 'драма', 'военный', 'история'], 15.0, 49.230772],
  11.     ['Миллионер из трущоб', 2008, 7.724, 120, ['драма', 'мелодрама'], 15.0, 377.910544],
  12.     ['Старикам тут не место', 2007, 7.726, 122, ['триллер', 'драма', 'криминал'], 25.0, 171.627166],
  13.     ['Отступники', 2006, 8.456, 151, ['триллер', 'драма', 'криминал'], 90.0, 289.847354],
  14.     ['Столкновение', 2004, 7.896, 108, ['триллер', 'драма', 'криминал'], 6.5, 98.410061],
  15.     ['Малышка на миллион', 2004, 8.075, 132, ['драма', 'спорт'], 30.0, 216.763646],
  16.     ['Властелин колец: Возвращение Короля', 2003, 8.617, 201, ['фэнтези', 'драма', 'приключения'], 94.0, 1119.110941],
  17.     ['Чикаго', 2002, 7.669, 113, ['мюзикл', 'комедия', 'криминал'], 45.0, 306.776732],
  18.     ['Игры разума', 2001, 8.557, 135, ['драма', 'биография', 'мелодрама'], 58.0, 313.542341],
  19.     ['Гладиатор', 2000, 8.585, 155, ['боевик', 'драма', 'приключения'], 103.0, 457.640427],
  20.     ['Красота по-американски', 1999, 7.965, 122, ['драма'], 15.0, 356.296601],
  21.     ['Влюбленный Шекспир', 1998, 7.452, 123, ['драма', 'мелодрама', 'комедия', 'история'], 25.0, 289.317794],
  22.     ['Титаник', 1997, 8.369, 194, ['драма', 'мелодрама'], 200.0, 2185.372302],
  23.     ['Английский пациент', 1996, 7.849, 155, ['драма', 'мелодрама', 'военный'], 27.0, 231.976425],
  24.     ['Храброе сердце', 1995, 8.283, 178, ['драма', 'военный', 'биография', 'история'], 72.0, 210.409945],
  25.     ['Форрест Гамп', 1994, 8.915, 142, ['драма', 'мелодрама'], 55.0, 677.386686],
  26.     ['Список Шиндлера', 1993, 8.819, 195, ['драма', 'биография', 'история'], 22.0, 321.265768],
  27.     ['Непрощенный', 1992, 7.858, 131, ['драма', 'вестерн'], 14.4, 159.157447],
  28.     ['Молчание ягнят', 1990, 8.335, 114, ['триллер', 'криминал', 'детектив', 'драма', 'ужасы'], 19.0, 272.742922],
  29.     ['Танцующий с волками', 1990, 8.112, 181, ['драма', 'приключения', 'вестерн'], 22.0, 424.208848],
  30.     ['Шофёр мисс Дэйзи', 1989, 7.645, 99, ['драма'], 7.5, 145.793296],
  31.     ['Человек дождя', 1988, 8.25, 133, ['драма'], 25.0, 354.825435],
  32. ]
  33.  
  34. def filter_by_year(data, begin, end):
  35.     result = []
  36.     for row in data:
  37.         year = row[1]
  38.         if begin <= year < end:
  39.             result.append(row)
  40.     return result
  41.  
  42. def column_sum(data, column):
  43.     result = 0
  44.     for row in data:
  45.         result += row[column]
  46.     return result
  47.  
  48. def column_mean(data, column):
  49.     total = column_sum(data, column)
  50.     mean = total / len(data)
  51.     return mean
  52.  
  53. def add_price_per_minute(data):
  54.     for i in range(len(data)):
  55.         length = data[i][3]
  56.         budget = data[i][5]
  57.         price_per_minute = budget / length
  58.         data[i].append(price_per_minute)
  59.  
  60. add_price_per_minute(oscar_data)
  61.  
  62. years = [[1988, 1998], [1998, 2008], [2008, 2018]]
  63.  
  64. rows = []
  65. for begin_end in years:
  66.     # извлекаем начало и конец промежутка
  67.     begin = begin_end[0]
  68.     end = begin_end[1]
  69.  
  70.     # создаем текстовую запись промежутка
  71.     name = '{}-{}'.format(begin, end)
  72.  
  73.     # отфильтруйте таблицу по промежутку
  74.     # < напишите код здесь >
  75.     filt_data = filter_by_year(oscar_data, begin, end)
  76.  
  77.     # вычислите средние значения
  78.     # < напишите код здесь >
  79.     mean_score = column_mean(filt_data, 2)
  80.     mean_length = column_mean(filt_data, 3)
  81.     mean_ppm = column_mean(filt_data, 5)
  82.     mean_gross = column_mean(filt_data, 6)
  83.  
  84.     # добавьте строку в новую таблицу
  85.     # < напишите код здесь >
  86.     rows.append([name, mean_score, mean_length, mean_ppm, mean_gross])
  87.  
  88.    
  89. print('Годы      | Рейтинг | Длина  | Бюджет за минуту | Сборы ')
  90. print('--------------------------------------------------------')
  91. for row in rows:
  92.     print('{: <9} | {: >7.2f} | {: >5.2f} | {: >16.2f} | {: >6.2f}'.format(
  93.         row[0], row[1], row[2], row[3], row[4]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement