Статья Автор: Деникина Н.В., Деникин А.В.

1.2 Фильтр и группировка — фильтр по условию

От «сколько» к «какие»

Счётчик даёт число, но само число редко бывает конечной целью. Обычно нужны сами строки, чтобы с ними работать дальше: посчитать по ним среднее, отсортировать, сравнить с остальными.

Фильтр — это новый список, куда попали только подходящие строки. Схема почти та же, что у счётчика, только вместо +1 мы кладём строку в список:

result = []
for m in movies:
    if условие:
        result.append(m)

Важно: result хранит те же самые словари, а не копии. Мы не размножили данные, а лишь собрали ссылки на нужные строки.


Условия посложнее

Условия соединяются через and и or. Читаются они буквально: and — «оба сразу», or — «хотя бы одно».

if int(m["budget"]) > 100000000 and float(m["score"]) >= 8.0:

Типичная ошибка — перепутать их местами. Дорогих фильмов 378, фильмов с высокой оценкой 195, а вот тех и других одновременно окажется совсем немного: условие с and всегда даёт результат не больше, чем каждое условие по отдельности, а с or — не меньше. Это удобная проверка на здравый смысл: если после добавления and строк стало больше, где-то ошибка.



Что показал вывод

Дорогих фильмов 378, высоко оценённых 195, а тех и других сразу — всего 27.

Это и есть та проверка здравым смыслом, о которой шла речь выше: 27 меньше и чем 378, и чем 195. Условие с and сужает всегда. Если бы получилось число больше — надо было бы искать ошибку, а не радоваться результату.

И отдельно стоит задуматься: дорогих фильмов почти четыре сотни, а хороших среди них два с половиной десятка. Большой бюджет сам по себе качества не покупает.


Сколько в таблице фильмов с бюджетом больше 100 млн долларов? Ответ числом.

Список после фильтра с and оказался длиннее, чем список по одному из двух условий. О чём это говорит?

Отметь верные утверждения про фильтрацию.

Какие из выражений корректно отберут фильмы жанра Comedy, вышедшие после 2015 года? Отметь всё верное.
Загрузка...
Чтобы оставить комментарий, необходимо авторизоваться
💬
Пока нет комментариев. Будьте первым!
Печать