Использование агрегации данных
Часть раздела Logic & Flow путешествия по Python на Coddy — урок 53 из 78.
Генераторы списков предоставляют краткий способ создания новых списков на основе существующих итерируемых объектов. Вы можете интегрировать функции агрегации данных, такие как sum(), min() и max(), непосредственно внутри генераторов списков для выполнения вычислений над элементами нового списка в процессе его создания.
Вычисление суммы квадратов:
numbers = [1, 2, 3, 4, 5]
sum_of_squares = sum([n * n for n in numbers])
print(sum_of_squares)
# Результат: 55В этом примере списковое включение [n * n for n in numbers] создает список квадратов, а функция sum() вычисляет сумму этих квадратов.
Поиск минимума преобразованных значений:
numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
print(min_absolute)
# Вывод: 0Здесь списковое включение [abs(n) for n in numbers] создает список абсолютных значений, а функция min() находит минимальное значение в этом списке.
Поиск максимума среди отфильтрованных значений:
numbers = [1, 2, 3, 4, 5, 6]
max_even = max([n for n in numbers if n % 2 == 0])
print(max_even)
# Вывод: 6В этом примере списковое включение [n for n in numbers if n % 2 == 0] создает список четных чисел, а функция max() находит максимальное значение в этом списке.
Задание
ЛегкоНапишите функцию sum_positive_evens, которая принимает список чисел в качестве входных данных. Используйте списковое включение (list comprehension) для фильтрации положительных четных чисел, а затем используйте sum() для вычисления их суммы. Верните результат.
Пример входных данных:
numbers = [-10, -5, 0, 2, 4, 7, 10, 12]Пример выходных данных:
28Шпаргалка
Списковые включения можно комбинировать с агрегатными функциями, такими как sum(), min() и max(), для выполнения вычислений над преобразованными или отфильтрованными данными.
Вычислить сумму квадратов:
numbers = [1, 2, 3, 4, 5]
sum_of_squares = sum([n * n for n in numbers])
# Output: 55Найти минимум преобразованных значений:
numbers = [-3, -1, 0, 1, 3]
min_absolute = min([abs(n) for n in numbers])
# Output: 0Найти максимум отфильтрованных значений:
numbers = [1, 2, 3, 4, 5, 6]
max_even = max([n for n in numbers if n % 2 == 0])
# Output: 6Попробуйте сами
def sum_positive_evens(numbers):
# Напишите здесь кодВ этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Logic & Flow
1Изучение переменных
КонстантыМножественное присваиваниеОбмен значениями переменныхПеременные-заполнителиОкругление чиселПриведение к списку4Приложение «Книга контактов»
Показать менюДобавить контакт7Множества. Часть 2
Математические операции. Часть 1Математические операции. Часть 2Повторение — Охота за сокровищамиПодмножества и надмножестваИтерация по множествамПовторение — Трекер турнира10Базовые генераторы списков
СинтаксисСоздание простых списковДобавление условийИспользование агрегации данныхПовторение — Дом списковПовторение — Элементы свободы13Система управления запасами
Обзор проектаДобавление товара2Словари. Часть 1
Что такое словарь?Создание словаряДоступ к значениямИзменение словарейИтоги — Менеджер рецептов5Продвинутое принятие решений
Тернарный операторПроверка вхожденияПроверка идентичностиОшибки отступовПовторение — Фильтр отпусков8Менеджер записей студентов
Обзор проектаДобавить студента11Продвинутые функции
Возврат нескольких значенийLambda-функции. Часть 1Lambda-функции. Часть 2Задача на повторение — Lambda-сортировкаРекурсивные функции. Часть 1Рекурсивные функции. Часть 2Повторение — сумма вложенного списка14Функции высшего порядка
Функция mapФункция filterПовторение — Валидатор emailПовторение — Обработчик чисел3Словари. Часть 2
Методы словарейВложенные словариПроверка наличия ключейПеребор словарей в циклеПовторение: счетчик частоты6Множества. Часть 1
Что такое множество?Основные операцииМетоды множествПовторение — удаление дубликатов9Продвинутая агрегация данных
Использование SumПоиск минимума и максимумаЭффективная сортировка данныхПовторение — Dictionary Sorter