Sum: примеры (PYTHON)

Использование функции sum в Python для суммирования элементов
Раздел: Встроенные функции, Агрегация
sum(iterable[, start]): Any

Функция sum() в Python предназначена для вычисления суммы элементов итерируемого объекта. Её основное применение - суммирование числовых значений в последовательностях, таких как списки, кортежи или множества.

Аргументы и возвращаемое значение

Функция принимает два параметра:

  • iterable - обязательный аргумент, представляющий итерируемый объект, содержащий элементы для суммирования (например, список, кортеж, диапазон). Элементы должны быть числами (целыми или с плавающей запятой).
  • start - необязательный аргумент, определяющий начальное значение суммы. По умолчанию равен 0. Параметр может быть целым или вещественным числом.

Возвращаемое значение - сумма всех элементов итерируемого объекта, сложенная со значением start. Если итерируемый объект пуст, функция возвращает значение start.

Короткие примеры использования

Суммирование целых чисел в списке:

numbers = [1, 2, 3, 4, 5]
result = sum(numbers)
print(result)
15

Использование начального значения:

numbers = [10, 20, 30]
result = sum(numbers, 100)
print(result)
160

Суммирование чисел с плавающей запятой:

values = [1.5, 2.3, 0.7]
result = sum(values)
print(result)
4.5

Работа с пустым итерируемым объектом:

empty_list = []
result = sum(empty_list, 10)
print(result)
10

Похожие функции в Python

  • math.fsum() - обеспечивает более точное суммирование чисел с плавающей запятую, уменьшая ошибки округления. Рекомендуется для финансовых или научных расчётов, где важна точность.
  • numpy.sum() - функция из библиотеки NumPy, оптимизированная для работы с многомерными массивами. Поддерживает дополнительные параметры, такие как ось суммирования и тип данных. Используется при обработке больших наборов данных.
  • reduce() из functools - применяет операцию сложения ко всем элементам последовательности. Более гибкая, но менее читаемая по сравнению с sum(). Применяется для реализации сложных агрегаций.

Аналоги функции в других языках

PHP: Функция array_sum() работает только с массивами.

$numbers = [1, 2, 3];
echo array_sum($numbers);
6

JavaScript: Отсутствует встроенная функция, используется reduce().

const numbers = [1, 2, 3];
const sum = numbers.reduce((a, b) => a + b, 0);
console.log(sum);
6

Java: Суммирование через цикл или Stream API.

import java.util.Arrays;
int[] numbers = {1, 2, 3};
int sum = Arrays.stream(numbers).sum();
System.out.println(sum);
6

SQL: Агрегатная функция SUM() применяется к столбцам таблиц.

SELECT SUM(price) FROM products;

C#: Метод Sum() из пространства имён System.Linq.

int[] numbers = {1, 2, 3};
int sum = numbers.Sum();
Console.WriteLine(sum);
6

Lua: Отсутствует встроенная функция, реализуется циклом.

Go: Нет готовой функции, суммирование выполняется в цикле.

Kotlin: Метод sum() доступен для коллекций чисел.

val numbers = listOf(1, 2, 3)
val sum = numbers.sum()
println(sum)
6

Типичные ошибки

Попытка суммирования нечисловых элементов вызывает TypeError.

data = ['a', 'b', 'c']
result = sum(data)
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Неявное игнорирование начального значения при работе со строками через sum() не поддерживается. Для конкатенации строк используется join().

words = ['Hello', 'World']
# Неправильно: sum(words, '')
result = ''.join(words)
print(result)
HelloWorld

Суммирование разных типов чисел работает корректно, но результат может быть неожиданным из-за преобразований типов.

mixed = [1, 2.5, 3]
result = sum(mixed)
print(result)
6.5

Изменения в последних версиях Python

В Python 3.8 была добавлена поддержка параметра start для встроенной функции sum() в соответствии с её исходным описанием. Ранее некоторые реализации могли неявно игнорировать этот аргумент. В версии 3.12 оптимизирована производительность для суммирования целых чисел и чисел с плавающей запятой.

Расширенные примеры использования

Суммирование чисел в генераторе для экономии памяти:

Пример python
squares_sum = sum(x**2 for x in range(1, 6))
print(squares_sum)
55

Использование начального значения для конкатенации списков:

Пример python
lists = [[1, 2], [3, 4], [5, 6]]
result = sum(lists, [])
print(result)
[1, 2, 3, 4, 5, 6]

Суммирование только положительных чисел:

Пример python
numbers = [5, -3, 10, -1, 8]
result = sum(x for x in numbers if x > 0)
print(result)
23

Работа с decimal для точных расчётов:

Пример python
from decimal import Decimal
values = [Decimal('10.5'), Decimal('20.3'), Decimal('30.7')]
result = sum(values)
print(result)
61.5

Суммирование атрибутов объектов:

Пример python
class Item:
    def __init__(self, price):
        self.price = price

items = [Item(100), Item(200), Item(300)]
total = sum(item.price for item in items)
print(total)
600

Комбинирование sum() с map():

Пример python
numbers = ['10', '20', '30']
result = sum(map(int, numbers))
print(result)
60

питон sum function comments

En
Sum Sum items