From 8f0db1384088737a09075adf23ea506c004d929b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=BA=20=D0=9A=D1=80=D1=8B=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2?= Date: Fri, 7 Apr 2023 21:01:37 +0600 Subject: [PATCH 1/3] lists_exercises --- lists/lists.py | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/lists/lists.py b/lists/lists.py index 04d850f..f12b78f 100644 --- a/lists/lists.py +++ b/lists/lists.py @@ -8,7 +8,16 @@ def replace(input_list: list[int]) -> list[int]: :param input_list: Исходный список :return: Список с замененными элементами """ - pass + if not input_list: + return input_list + max_value = input_list[0] + for items in input_list: + if items > max_value: + max_value = items + replaced_list = list( + map(lambda replaced: max_value if replaced > 0 else replaced, input_list) + ) + return replaced_list @staticmethod def search(input_list: list[int], query: int) -> int: @@ -20,4 +29,21 @@ def search(input_list: list[int], query: int) -> int: :param query: Искомый элемент :return: Номер элемента """ - pass + if len(input_list) == 0: + return -1 + + mid = len(input_list) // 2 + + if input_list[mid] == query: + return mid + + elif query < input_list[mid]: + return ListExercise.search(input_list[:mid], query) + + else: + new_mid = mid + 1 + result = ListExercise.search(input_list[new_mid:], query) + if result == -1: + return -1 + else: + return mid + 1 + result From 4b89c95914cf3da61755141d0038730a86f1e812 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=BA=20=D0=9A=D1=80=D1=8B=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2?= Date: Fri, 7 Apr 2023 21:11:12 +0600 Subject: [PATCH 2/3] maps_exercises --- maps/maps.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/maps/maps.py b/maps/maps.py index dd5d560..4496f00 100644 --- a/maps/maps.py +++ b/maps/maps.py @@ -13,7 +13,16 @@ def rating(list_of_movies: list[dict]) -> float: Ключи словаря: name, rating_kinopoisk, rating_imdb, genres, year, access_level, country :return: Средний рейтинг фильмов у которых две или больше стран """ - pass + more_2_countries_movies = [] + for movie in list_of_movies: + if ( + movie["rating_kinopoisk"] + and float(movie["rating_kinopoisk"]) != 0 + and len(movie["country"].split(",")) >= 2 + ): + more_2_countries_movies.append(movie) + rating = map(lambda movie: float(movie["rating_kinopoisk"]), more_2_countries_movies) + return sum(rating) / len(list(more_2_countries_movies)) @staticmethod def chars_count(list_of_movies: list[dict], rating: Union[float, int]) -> int: @@ -28,4 +37,9 @@ def chars_count(list_of_movies: list[dict], rating: Union[float, int]) -> int: :return: Количество букв 'и' в названиях всех фильмов с рейтингом больше или равным заданному значению """ - pass + rating_movies = [] + for movie in list_of_movies: + if movie["rating_kinopoisk"] and float(movie["rating_kinopoisk"]) >= rating: + rating_movies.append(movie) + letters = map(lambda movie: movie["name"].count("и"), rating_movies) + return sum(letters) From 0fc3c89d9e96eb780e1509a18fbe8956dfbd82bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=BA=20=D0=9A=D1=80=D1=8B=D0=BB=D0=BE?= =?UTF-8?q?=D0=B2?= Date: Mon, 10 Apr 2023 16:10:39 +0600 Subject: [PATCH 3/3] edit_maps_exercises --- maps/maps.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/maps/maps.py b/maps/maps.py index 4496f00..c2767c5 100644 --- a/maps/maps.py +++ b/maps/maps.py @@ -18,11 +18,11 @@ def rating(list_of_movies: list[dict]) -> float: if ( movie["rating_kinopoisk"] and float(movie["rating_kinopoisk"]) != 0 - and len(movie["country"].split(",")) >= 2 + and movie["country"].count(",") >= 1 ): more_2_countries_movies.append(movie) rating = map(lambda movie: float(movie["rating_kinopoisk"]), more_2_countries_movies) - return sum(rating) / len(list(more_2_countries_movies)) + return sum(rating) / len(more_2_countries_movies) @staticmethod def chars_count(list_of_movies: list[dict], rating: Union[float, int]) -> int: