Прошу помочь в решении. Ясно что всё просто, но уже две недели никак. Заранее благодарен.
Напишите функцию filter_by_genre, которая принимает два аргумента: data: список списков с информацией о фильмах, genre: название жанра, по умолчанию — 'драма'. Функция возвращает данные о фильмах в жанре 'драма'. Если жанров несколько — 'драма' будет среди них.
# функция печати таблицы, принимает на вход список списков, ничего не возвращает (неявно возвращается None)
def print_movie_table(data):
for movie in data:
for elem in movie:
print(f'{elem:<45}', end='')
print()
def filter_by_genre(data, genre = 'драма'):
genre = []
for row in data:
if genre in row[3]:
filtered_data.append(row)
movies_table = [
['Побег из Шоушенка', 'США', 1994, 'драма', 142, 9.111],
['Крёстный отец', 'США', 1972, 'драма, криминал', 175, 8.730],
['Тёмный рыцарь', 'США', 2008, 'фантастика, боевик, триллер', 152, 8.499],
['Список Шиндлера', 'США', 1993, 'драма', 195, 8.818],
['Властелин колец: Возвращение Короля', 'Новая Зеландия', 2003, 'фэнтези, приключения, драма', 201, 8.625],
['Криминальное чтиво', 'США', 1994, 'триллер, комедия, криминал', 154, 8.619],
['Хороший, плохой, злой', 'Италия', 1966, 'вестерн', 178, 8.521],
['Бойцовский клуб', 'США', 1999, 'триллер, драма, криминал', 139, 8.644],
['Харакири', 'Япония', 1962, 'драма, боевик, история', 133, 8.106],
['Сталкер', 'СССР', 1979, 'фантастика, драма, детектив', 163, 8.083],
['Иди и смотри', 'СССР', 1985, 'драма, военный', 136, 8.094]
]
movies_table_filtered = filter_by_genre(movies_table)
print_movie_table(movies_table_filtered)
Ваш вариант
def filter_by_genre(data, genre='драма'):
filtered_data = []
for row in data:
if genre in row[3]:
filtered_data.append(row)
return filtered_data
По-хипстерски
def filter_by_genre(data, genre='драма'):
return list(filter(lambda d: genre in d[3], data))
надо чото сделать
не могу сидеть когда другие работают—пойду,лягу...