/
Вопросы и ответы
/
Python
/

Какая функция нужны для вычисления сумма значений в списке в Python?

Какая функция нужны для вычисления сумма значений в списке в Python?

4 года назад

Andrey Moshkov

Ответы

0

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

1
2
3
4
5
numbers = [1, 2, 3, 4]
nums_in_tuple = (1, 2, 3)

sum(numbers) # 10
sum(nums_in_tuple) # 6

4 года назад

Владимир Устянивский

0

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

1
2
3
4
numbers = [3, 5, 7]
print(sum(numbers))       # => 15
print(sum((1, 2, 3)))     # => 6 — кортеж тоже подходит
print(sum([]))            # => 0

Второй аргумент — начальное значение суммы:

1
print(sum([1, 2, 3], 10))  # => 16

Сумма по условию

Генератор внутри sum() отбирает нужные элементы:

1
2
3
numbers = [1, 2, 3, 4, 5, 6]
print(sum(n for n in numbers if n % 2 == 0))  # => 12 — только чётные
print(sum(1 for n in numbers if n > 3))       # => 3 — сколько чисел больше 3

Сумма полей в списке словарей

1
2
orders = [{"total": 500}, {"total": 1200}, {"total": 300}]
print(sum(order["total"] for order in orders))  # => 2000

Если в списке строки

sum(["1", "2"]) вызовет TypeError. Переведите элементы в числа:

1
print(sum(map(int, ["1", "2", "3"])))  # => 6

Дробные числа

sum() накапливает погрешность: sum([0.1] * 10) даёт 0.9999999999999999. Точный результат для дробей даёт math.fsum():

1
2
import math
print(math.fsum([0.1] * 10))  # => 1.0

Сумма без sum()

Так решают учебные задачи, где встроенные функции запрещены:

1
2
3
4
total = 0
for n in [3, 5, 7]:
    total += n
print(total)  # => 15

Списки и циклы разбирают в бесплатном курсе «Основы Python».

10 дней назад

Никита Вихров

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845