Пропустить до содержимого

Как просто использовать и исправить ошибку: сумма списка в Python

[

Python sum() - Простой и эффективный способ суммирования значений

Python Tricks Dictionary Merge

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

Также интересным применением функции sum() является конкатенация списков и кортежей, что может быть удобным, когда нужно “сплющить” список списков.

В этом руководстве вы узнаете, как:

  • Суммировать числовые значения вручную, используя общие техники и инструменты.
  • Использовать sum() в Python для эффективного суммирования нескольких числовых значений.
  • Конкатенировать списки и кортежи с помощью sum().
  • Использовать sum() для решения различных задач суммирования.
  • Выбирать подходящие значения для аргументов функции sum().
  • Выбирать между функцией sum() и альтернативными инструментами для суммирования и конкатенации объектов.

Это знание поможет вам эффективно решать проблемы суммирования в вашем коде с использованием функции sum() или других специализированных инструментов.

Бесплатный бонус: Щелкните здесь, чтобы получить Шпаргалку по Python и изучить основы Python 3, такие как работа с типами данных, словарями, списками и функциями Python.

Понимание проблемы суммирования

Суммирование числовых значений вместе является довольно распространенной задачей в программировании. Например, предположим, у вас есть список чисел [1, 2, 3, 4, 5] и вы хотите сложить их вместе, чтобы вычислить их общую сумму. Обычно при арифметических операциях вы будете делать что-то вроде этого:

1 + 2 + 3 + 4 + 5 = 15

С точки зрения математики, эта операция довольно простая. Она позволяет последовательно сложить все числа и найти их сумму.

Возможно, вы сможете выполнить этот расчет вручную, но представьте себе ситуации, когда это может быть затруднительно. Если у вас есть особенно длинный список чисел, суммирование вручную может быть неэффективным и содержать ошибки. Что произойдет, если вы даже не знаете, сколько элементов в списке? Наконец, представьте себе ситуацию, когда количество элементов, которые нужно сложить, изменяется динамически или непредсказуемо.

numbers = [1, 2, 3, 4, 5]
total = 0
for number in numbers:
total += number
total

Здесь вы сначала создаете переменную total и инициализируете ее значением 0. Затем вы проходите по списку чисел и добавляете каждое число к переменной total. В результате получается сумма всех чисел (15).

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

Начало работы с функцией sum() в Python

Функция sum() имеет два аргумента: обязательный iterable и необязательный start.

Обязательный аргумент: iterable

Обязательный аргумент iterable представляет собой итерируемый объект, элементы которого будут суммироваться. Итерируемые объекты в Python включают в себя списки, кортежи, множества и строки.

Примеры итерируемых объектов:

  • Список: [1, 2, 3, 4, 5]
  • Кортеж: (1, 2, 3, 4, 5)
  • Множество: {1, 2, 3, 4, 5}
  • Строка: '12345'
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
total

Здесь список чисел [1, 2, 3, 4, 5] является итерируемым объектом, который передается в функцию sum(). Функция возвращает сумму всех чисел в списке (15).

Необязательный аргумент: start

Необязательный аргумент start позволяет указать начальное значение для суммы. Если не указан, то сумма будет вычислена с помощью первых двух элементов итерируемого объекта.

numbers = [1, 2, 3, 4, 5]
total = sum(numbers, 10)
total

Здесь список чисел [1, 2, 3, 4, 5] передается функции sum() вместе с начальным значением 10. Функция возвращает сумму всех чисел в списке, начиная с 10 (25).

Суммирование числовых значений

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

total = sum(1, 2, 3, 4, 5)
total

Здесь функция sum() принимает пять чисел: 1, 2, 3, 4 и 5. Результатом будет сумма этих чисел (15).

Конкатенация последовательностей

Функция sum() также может быть использована для конкатенации списков и кортежей. Это полезно, когда нужно “сплющить” список списков.

lists = [[1, 2], [3, 4], [5, 6]]
concatenated = sum(lists, [])
concatenated

Здесь список списков [[1, 2], [3, 4], [5, 6]] передается функции sum(). Вторым аргументом передается пустой список [], который будет использован в качестве начального значения. Функция sum() конкатенирует все списки в один список [1, 2, 3, 4, 5, 6].

Практика с использованием функции sum()

sum() может быть использована для решения различных задач суммирования. Определим несколько примеров.

Вычисление накопительных сумм

numbers = [1, 2, 3, 4, 5]
cumulative_sums = [sum(numbers[:i+1]) for i in range(len(numbers))]
cumulative_sums

Здесь список чисел [1, 2, 3, 4, 5] разбивается на подсписки с помощью срезов. Затем для каждого подсписка вычисляется сумма с помощью функции sum(). В результате получается список накопительных сумм [1, 3, 6, 10, 15].

Вычисление среднего значения выборки

sample = [1, 2, 3, 4, 5]
mean = sum(sample) / len(sample)
mean

Здесь список чисел [1, 2, 3, 4, 5] передается в функцию sum(), чтобы вычислить их сумму. Затем сумма делится на длину списка, чтобы получить среднее значение выборки (3.0).

Вычисление скалярного произведения двух последовательностей

sequence1 = [1, 2, 3]
sequence2 = [4, 5, 6]
dot_product = sum([x * y for x, y in zip(sequence1, sequence2)])
dot_product

Здесь две последовательности [1, 2, 3] и [4, 5, 6] соответственно перемножаются элементы с одинаковыми индексами при помощи генератора списка. Затем полученные произведения суммируются с помощью функции sum(). В результате получается скалярное произведение двух последовательностей (32).

”Сплющивание” списка списков

lists = [[1, 2], [3, 4, 5], [6, 7, 8, 9]]
flattened = sum(lists, [])
flattened

Здесь список списков [[1, 2], [3, 4, 5], [6, 7, 8, 9]] передается в функцию sum(). Вторым аргументом передается пустой список, который будет использован в качестве начального значения. Функция sum() конкатенирует все списки в один список [1, 2, 3, 4, 5, 6, 7, 8, 9].

Использование альтернатив для sum()

Кроме функции sum(), в Python есть и другие инструменты, которые можно использовать для суммирования и конкатенации объектов.

Суммирование вещественных чисел: math.fsum()

import math
numbers = [0.1, 0.2, 0.3, 0.4, 0.5]
total = math.fsum(numbers)
total

Здесь список вещественных чисел [0.1, 0.2, 0.3, 0.4, 0.5] передается функции math.fsum(). Функция fsum() более точно выполняет суммирование вещественных чисел, избегая ошибок округления. В результате получается сумма всех чисел (1.5).

Конкатенация итерируемых объектов: itertools.chain()

import itertools
lists = [[1, 2], [3, 4], [5, 6]]
concatenated = list(itertools.chain.from_iterable(lists))
concatenated

Здесь список списков [[1, 2], [3, 4], [5, 6]] конкатенируется с помощью функции itertools.chain.from_iterable(). Функция chain.from_iterable() объединяет все элементы итерируемых объектов в один список [1, 2, 3, 4, 5, 6].

Конкатенация строк: str.join()

strings = ['Hello', 'World', '!']
concatenated = ''.join(strings)
concatenated

Здесь список строк ['Hello', 'World', '!'] конкатенируется с помощью метода str.join(). Метод join() объединяет все строки из списка в одну строку 'HelloWorld!'.

Заключение

Функция sum() в Python предоставляет простой и эффективный способ суммирования значений. Она может быть использована для сложения чисел, конкатенации списков и кортежей, а также для решения различных задач суммирования. Более того, существуют альтернативные инструменты, такие как math.fsum(), itertools.chain() и str.join(), которые могут быть полезны в определенных ситуациях.

Выбор между sum() и альтернативными инструментами зависит от конкретной задачи и предпочтений разработчика.

Надеюсь, что это руководство помогло вам понять и использовать функцию sum() в Python. Удачи в изучении и программировании на Python!