logo

Сумма и попарное среднее в списке Python: решение

Быстрый ответ

Суммирование чисел в списке облегчается функцией sum():

Python
Скопировать код
total = sum([1, 2, 3])
print(total)  # Выведет 6

Продвинутые возможности

Рассмотрим некоторые методы суммирования чисел с использованием Python.

Работа с десятичными дробями

Точность крайне важна в финансовых расчетах, в этом поможет decimal.Decimal.

Python
Скопировать код
from decimal import Decimal
prices = [Decimal('4.20'), Decimal('2.50'), Decimal('1.99')]
total = sum(prices)
print(total)  # Выводит точную сумму

Эффективное суммирование с использованием генераторов

Для обработки больших объемов данных рекомендуется использовать генераторы — это существенно экономит память.

Python
Скопировать код
numbers = range(1_000_000)
total = sum(n for n in numbers)

Расчет среднего для парных значений

Можно вычислить среднее значение для соседних пар чисел, используя zip() и срезы.

Python
Скопировать код
numbers = [10, 20, 30, 40, 50]
pairwise_averages = [(x + y) / 2.0 for x, y in zip(numbers, numbers[1:])]
print(pairwise_averages)  # [15\.0, 25.0, 35.0, 45.0]

Визуализация 👀

Оказываем, как работает функция sum() на примере списка покупок:

Markdown
Скопировать код
🍎: 2, 🍌: 4, 🍇: 6, 🍓: 10

Наша цель — узнать общую стоимость продуктов:

Python
Скопировать код
grocery_list = [2, 4, 6, 10]
total_cost = sum(grocery_list)

Функция sum() выполняет подсчет:

Markdown
Скопировать код
**Итого:** 💰 2 + 4 + 6 + 10

Общая сумма:

Markdown
Скопировать код
**Общая сумма:** 💰 22

Приступим к дальнейшему изучению!

Суммирование списков разной длины

Функция sum() способна обрабатывать списки различной длины без проблем:

Python
Скопировать код
random_lengths = [sum([1, 2]), sum([10, 20, 30]), sum(range(4))]
print(random_lengths)  # [3, 60, 6]

Рефакторинг кода для улучшения читаемости

Читаемый и простой код — залог легкого поддержания:

Python
Скопировать код
numbers_to_add = [1, 2, 3]
total_sum = sum(numbers_to_add)

Совместимость

Многие приведенные примеры совместимы с Python 3. Для Python 2 необходимо импортировать division из модуля __future__, чтобы обеспечить корректное деление.

Советы эксперта

Установка начальной точки для суммирования

Можно задать начальную точку для суммирования с помощью функции sum():

Python
Скопировать код
total = sum([1, 2, 3], 10)
print(total)  # 16

Суммирование с преобразованием через map

Можно конвертировать и суммировать элементы в одно и то же время с помощью функции map:

Python
Скопировать код
numbers = ['1', '2', '3']
total = sum(map(int, numbers))
print(total)  # 6

Полезные материалы

  1. Built-in Functions — Python 3.12.2 documentation — Подробное описание функции sum().
  2. Python's sum(): The Pythonic Way to Sum Values – Real Python — Лучшие практики использования sum() в Python.
  3. sum() function in Python – GeeksforGeeks — Ясное описание и примеры использования sum() в Python.
  4. Tutorial | DigitalOcean — Как суммировать элементы списка в Python.
  5. numpy.sum — NumPy v1.26 Manual — Официальное руководство для numpy.sum.
  6. Speed Up Your Python Program With Concurrency – Medium — Оптимизация производительности программ на Python с использованием параллелизма.