Python: сумма элементов в списке — UPROGER

Списки Python – одна из наиболее часто используемых структур данных. Часто приходится выполнять различные операции со списками. В этой статье обсудим способы нахождения суммы элементов в списке в Python.

Находим сумму элементов в списке с помощью цикла For

Первый способ найти сумму элементов в списке – это выполнить итерацию по списку и добавить каждый элемент с помощью цикла for. Сначала рассчитаем длину списка с помощью метода len(). После этого объявим переменную sumOfElements равной 0. Затем используем функцию range(), чтобы создать последовательность чисел от 0 до (длина list-1). Используя числа в этой последовательности, мы получим доступ к элементам данного списка и добавим их в sumOfElements:

myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print("The given list is:")
print(myList)
list_length=len(myList)
sumOfElements=0
for i in range(list_length):
    sumOfElements=sumOfElements+myList[i]

print("Sum of all the elements in the list is:", sumOfElements)

Вывод:

The given list is:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Sum of all the elements in the list is: 45

Также можно напрямую перебирать список, используя цикл for. Так мы получим прямой доступ к каждому элементу в списке и добавим их в сумму элементов:

myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print("The given list is:")
print(myList)
sumOfElements = 0
for element in myList:
    sumOfElements = sumOfElements + element

print("Sum of all the elements in the list is:", sumOfElements)

Вывод:

The given list is:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Sum of all the elements in the list is: 45

Находим сумму элементов в списке с помощью цикла While

Также можно использовать цикл while, чтобы найти сумму элементов в списке. Для этого сначала рассчитаем длину списка с помощью метода len(). После этого инициализируем переменные с именами count и sumOfElements. Мы инициализируем оба элемента равными 0.

С помощью цикла while мы получим доступ к каждому элементу списка с помощью переменной count и добавим их в sumOfElements. После этого мы увеличим значение count на 1 и продолжим до тех пор, пока количество не станет равным длине списка.

Ваша программа может выглядеть так:

myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print("The given list is:")
print(myList)
list_length = len(myList)
sumOfElements = 0
count = 0
while count < list_length:
    sumOfElements = sumOfElements + myList[count]
    count = count + 1

print("Sum of all the elements in the list is:", sumOfElements)

Вывод:

The given list is:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Sum of all the elements in the list is: 45

Сумма элементов в списке с помощью функции sum()

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

Так можно найти сумму элементов списка с помощью функции sum():

myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print("The given list is:")
print(myList)
sumOfElements = sum(myList)
print("Sum of all the elements in the list is:", sumOfElements)

Вывод:

The given list is:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
Sum of all the elements in the list is: 45

Заключение

В этой статье мы обсудили различные способы, как найти суммы элементов в списке Python.

Post Views: 11 991

Список Python Sum () — простое иллюстрированное руководство

Автор оригинала: Chris.

Суммируя список чисел появляется везде в кодировке. К счастью, Python предоставляет встроенный сумма () Функция для суммирования всех элементов в списке Python – или любой другой, что это имеется в этом вопросе. (Официальные документы)

Синтаксис есть Сумма (считать, что) :

считатьСумма над всеми элементами в утечке. Это может быть список, кортеж, набор или любая другая структура данных, которая позволяет вам повторять элементы. Пример: сумма ([1, 2, 3]) возвращает.
Начало(Необязательно.) Значение запуска по умолчанию равно 0. Если вы определите другое значение Start, сумма всех значений в Iterable будет добавлена к этому значению. Пример: сумма ([1, 2, 3], 9) возврата.

Проверьте вебинар Python Freelancer и KickStart вашу кодирующую карьеру!

Код : Давайте проверим практический пример!

lst = [1, 2, 3, 4, 5, 6] print(sum(lst)) # 21 print(sum(lst, 10)) # 31

Упражнение : Попробуйте изменить последовательность, чтобы сумма была 30 в нашей интерактивной оболочке Python:

Давайте рассмотрим некоторые важные детали относительно сумма () Функция в Python.

Ошибки

Ряд ошибок может произойти, если вы используете сумма () Функция в Python.

Типеррор : Python бросит в систему, если вы попытаетесь суммировать над элементами, которые не являются численными. Вот пример:

# Demonstrate possible execeptions
lst = ['Bob', 'Alice', 'Ann']
# WRONG:
s = sum(lst)

Если вы запустите этот код, вы получите следующее сообщение об ошибке:

Traceback (most recent call last): File "C:\Users\xcent\Desktop\code. py", line 3, in s = sum(lst) TypeError: unsupported operand type(s) for +: 'int' and 'str'

Python пытается выполнить конконтрацию строки с использованием значения запуска по умолчанию 0 (целое число). Конечно, это терпит неудачу. Решение простое: сумма только над численными значениями в списке.

Если вы попытаетесь «взломать» Python, используя пустую строку в качестве начального значения, вы получите следующее исключение:

# Demonstrate possible execeptions
lst = ['Bob', 'Alice', 'Ann']
# WRONG:
s = sum(lst, '')

Выход:

Traceback (most recent call last): File "C:\Users\xcent\Desktop\code. py", line 5, in s = sum(lst, '') TypeError: sum() can't sum strings [use ''.join(seq) instead]

Вы можете избавиться от всех этих ошибок, суммируя только численные элементы в списке.

(Для получения дополнительной информации о методе join (), проверьте эту статью в блоге.)

Сложность списков Sum Python

Сложность времени сумма () Функция линейна в количестве элементов в Iterable ( Список , кортеж, Set и т. Д.). Причина в том, что вам нужно пройти все элементы в утечке и добавить их в сумму переменной. Таким образом, вам нужно «прикоснуться» каждый повторный элемент один раз.

Список строк Python Sum

Проблема

: Как вы можете суммировать список таких строк, как [«Питон», «-« Великий »] ? Это называется конкатенацией строки.

Решение : Используйте Присоединяйтесь () Способ строк Python в объединять все строки в списке. сумма () Функция работает только на численных входных данных.

Код : В следующем примере показано, как «суммировать» UP (I.E., ConcateNate) все элементы в данном списке строк.

# List of strings lst = ['Bob', 'Alice', 'Ann'] print(''.join(lst)) # BobAliceAnn print(' '.join(lst)) # Bob Alice Ann

Список списков Sum Python

Проблема : Как вы можете суммировать список списков, таких как [[1, 2], [3, 4], [5, 6]] в Python?

Решение : Используйте простой для цикла с помощью помощника переменной для объединения всех списков.

Код : Следующий код объединяет все списки в один список.

# List of lists
lst = [[1, 2], [3, 4], [5, 6]]
s = []
for x in lst:
    s. extend(x)
print(s)
# [1, 2, 3, 4, 5, 6]

продлить () Метод немного известен в Python – но очень эффективен, чтобы добавить ряд элементов в список Python сразу. Проверьте мой подробный учебник по этому блюду Finxter.

Список Sum Python пока цикла

Проблема : Как вы можете получить сумму на все элементы списка, используя цикл While (без Sum () )?

Решение : Создайте переменную агрегацию и итеративно добавить другой элемент из списка.

Код : Следующий код показывает, как суммировать все численные значения в списке Python без использования сумма () функция.

# list of integers
lst = [1, 2, 3, 4, 5]
# aggregation variable
s = 0
# index variable
i = 0
# sum everything up
while i(lst):>

Это не самый красивый способ, но это читается, и он работает (и, и, вы не хотели использовать Sum () Функция, верно?).

Список суммирования Python для петли

Проблема : Как вы можете суммировать над всеми элементами списка, используя петлю для цикла (без Sum () )?

Решение : Создайте переменную агрегацию и итеративно добавить другой элемент из списка.

Код : Следующий код показывает, как суммировать все численные значения в списке Python без использования сумма () функция.

# list of integers
lst = [1, 2, 3, 4, 5]
# aggregation variable
s = 0
# sum everything up
for x in lst:
    s += x
# print the result
print(s)
# 15

Это немного более читаемое, чем предыдущая версия с циклом, потому что вам не нужно отслеживать текущий индекс.

Список суммирования Python с пониманием списка

Понимание списка является мощным функциями Python, которая позволяет создать новый список на основе существующего намерения. Можете ли вы суммировать все значения в списке, используя только понимание списка?

Ответ – нет. Почему? Потому что понимание списка существует для создания нового списка. Суммирующие значения не о создании нового списка. Вы хотите избавиться от списка и объединять все значения в списке в одну численную «сумму».

СПИСОК PYTHON SUM TRESTE

Проблема : Как подвести список кортежей, элемент-мудрый?

Пример : Скажи, у тебя есть список [(1, 1), (2, 0), (0, 3)] И вы хотите подвести итоги первого и второго ценностей кортежей для получения «суммированного кортежа» (1 + 2 + 0, 1 + 0 + 3) = (3, 4) Отказ

Решение : Распакуйте кортежи в функцию ZIP, чтобы объединить первое и второе ценности кортежных корпусов. Затем суммируйте эти ценности отдельно. Вот код:

# list of tuples
lst = [(1, 1), (2, 0), (0, 3)]
# aggregate first and second tuple values
zipped = list(zip(*lst))
# result: [(1, 2, 0), (1, 0, 3)]
# calculate sum of first and second tuple values
res = (sum(zipped[0]), sum(zipped[1]))
# print result to the shell
print(res)
# result: (3, 4)

Нужен переподготовка zip () Функция и распаковка? Проверьте эти статьи на блог Finxter:

  • Zip refeher
  • Распаковывать ревью

Список списка Python Sum

Проблема : Учитывая список. Суммируйте ломтик исходного списка между началом и показателями шагов (и при условии, что данный размер шага также).

Пример : Дано это список [3, 4, 5, 6, 7, 8, 9, 10] Отказ Суммируйте ломтик lst [2: 5: 2] с Start = 2 , Стоп = 5 и Шаг = 2 Отказ

Решение : Используйте Slicing, чтобы получить доступ к списку. Затем нанесите функцию суммы () на результате.

Код : Следующий код вычисляет сумму данного ломтика.

# create the list
lst = [3, 4, 5, 6, 7, 8, 9, 10]
# create the slice
slc = lst[2:5:2]
# calculate the sum
s = sum(slc)
# print the result
print(s)
# 12 (=5+7)

Давайте рассмотрим интересную проблему: суммировать условно!

Состояние списка Sum Python

Проблема : Preen это список. Как суммировать все значения, которые соответствуют определенному условию?

Пример : Скажи, у вас есть список lst = [5, 8, 12, 2, 1, 3] И вы хотите суммировать все значения, которые больше 4.

Решение : Используйте понимание списка для фильтрации списка так, чтобы только элементы, которые удовлетворяют условию. Тогда используйте сумма () функция, чтобы суммировать остальные значения.

Код Следующие суммы кода по всем значениям, которые удовлетворяют определенному условию (например, X> 4 ).

# create the list
lst = [5, 8, 12, 2, 1, 3]
# filter the list
filtered = [x for x in lst if x>4]
# remaining list: [5, 8, 12]
# sum over the filtered list
s = sum(filtered)
# print everything
print(s)
# 25

Нужно повысить понимание списка? Проверьте мой углубленный учебник в блоге Finxter.

Список SUM Python игнорируйте

Проблема : Preen – это список числовых значений, которые могут содержать некоторые значения Нет Отказ Как суммировать все значения, которые не являются ценностью Нет ?

Пример : Скажи, у вас есть список lst = [5, нет, нет, 8, 12, нет, 2, 1, нет, 3] и вы хотите суммировать все значения, которые не являются Нет Отказ

Решение : Используйте понимание списка для фильтрации списка так, чтобы оставаться только элементы, которые удовлетворяют условию (которые отличаются от None ). Видите ли, это особый случай предыдущего абзаца, который проверяет общее состояние. Тогда используйте сумма () функция, чтобы суммировать остальные значения.

Код : Следующие суммы кода по всем значениям, которые не являются Нет Отказ

# create the list
lst = [5, None, None, 8, 12, None, 2, 1, None, 3]
# filter the list
filtered = [x for x in lst if x!=None]
# remaining list: [5, 8, 12, 2, 1, 3]
# sum over the filtered list
s = sum(filtered)
# print everything
print(s)
# 31

Подобное можно сделать со значением Нан Это может нарушить ваш результат, если вы не осторожны.

Список суммирования Python игнорировать NAN

Проблема : Preen – это список числовых значений, которые могут содержать некоторые значения Нан ). Как суммировать все значения, которые не являются ценностью Нан ?

Пример : Скажи, у вас есть список lst = [1, 2, 3, float ("NAN"), float ("NAN"), 4] и вы хотите суммировать все значения, которые не являются Нан Отказ

Решение : Используйте понимание списка для фильтрации списка, чтобы оставаться только элементами, которые удовлетворяют условию (отличаются от NAN ). Видите ли, это особый случай предыдущего абзаца, который проверяет общее состояние. Тогда используйте сумма () функция, чтобы суммировать остальные значения.

Код : Следующие суммы кода по всем значениям, которые не являются Нан Отказ

# for checking isnan(x)
import math
# create the list
lst = [1, 2, 3, float("nan"), float("nan"), 4]
# forget to ignore 'nan'
print(sum(lst))
# nan
# ignore 'nan'
print(sum([x for x in lst if not math. isnan(x)]))
# 10

Фу! Совсем некоторые вещи. Спасибо, что прочитали всю эту статью! Я надеюсь, что вы узнали что-то из этого урока и остаемся следующей рекомендацией:

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

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

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python One-listers (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

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

Функция

sum() в Python

Улучшить статью

Сохранить статью

  • Уровень сложности: Easy
  • Последнее обновление: 15 июл, 2022

  • Читать
  • Обсудить
  • Посмотреть обсуждение

    Улучшить статью

    Сохранить статью

    Везде требуется сумма чисел в списке. Python предоставляет встроенную функцию sum(), которая суммирует числа в списке.

    Синтаксис:

      сумма(повторяемая, начало) 
      iterable :  iterable может быть любым списком, кортежами или словарями,
     но самое главное это должны быть цифры.
      начало  : это начало добавляется к сумме
    числа в итерации.
    Если start не указан в синтаксисе, предполагается, что он равен 0. 

    Возможны два варианта синтаксиса:

      sum(a) 
    a — это список, он суммирует все числа в
    list a и принимает start равным 0, поэтому возврат
    только сумма чисел в списке.
      сумма(а, начало) 
    this returns the sum of the list + start  

    Below is the Python implementation of the sum() 

    Python3

       

    numbers = [ 1 , 2 , 3 , 4 , 5 , 1 , 4 , 5 ]

     

    Sum = sum (numbers)

    print ( Sum )

     

    Sum = sum ( Числа, 10 )

    Печать ( Сумма )

    Выход:

    22 252 251
    35 

    Ошибки и исключения

    TypeError : Эта ошибка возникает в том случае, если в списке есть что-то кроме цифр.

    Python3

    arr = ["a"]

     

    Sum = sum (arr)

    print ( Sum )

     

    Сумма = Сумма (ARR, 10 )

    Печать ( Сумма )

    RunTime Errlime:

    9003 2

    Runtime. Файл «/home/23f0f6c9e022aa96d6c560a7eb4cf387.py», строка 6, в Сумма = сумма (приб.) TypeError: неподдерживаемые типы операндов для +: ‘int’ и ‘str’

     

    Таким образом, список должен содержать числа Практическое применение: Задачи, требующие вычисления суммы для выполнения дальнейших операций, таких как поиск из среднего числа.

    Python3

     

    numbers = [ 1 , 2 , 3 , 4 , 5 , 1 , 4 , 5 ]

     

    Sum = sum (numbers)

    average = Сумма / LEN (Числа)

    Печать (в среднем)

    39003 9003

    . Задавать вопрос

    спросил

    Изменено 1 месяц назад

    Просмотрено 365 тысяч раз

    Вот мой код, мне нужно просуммировать неопределенное количество элементов в списке. Как это сделать?

     л = необработанный_ввод()
    л = л.split(' ')
    л.поп(0)
     

    Мой ввод: 3 5 4 9 После ввода я удаляю первый элемент через l.pop(0) . После .split(' ') мой список равен ['5', '4', '9'] , и мне нужно суммировать все элементы в этом списке.

    В данном случае сумма равна 18. Обратите внимание, что количество элементов не определено.

    • питон
    • список
    • сумма

    3

    Вы можете суммировать числа в списке просто с помощью встроенной функции sum():

     sum(your_list)
     

    Суммирует столько числовых элементов, сколько у вас есть. Пример:

     мой_список = диапазон (10, 17)
    мой список
    [10, 11, 12, 13, 14, 15, 16]
    сумма (мой_список)
    91
     

    Для вашего конкретного случая :

    Для ваших данных преобразуйте числа в int сначала, а затем суммируйте числа:

     data = ['5', '4', '9']
    сумма (int (i) для i в данных)
    18
     

    Это будет работать для неопределенного количества элементов в вашем списке (если они являются «числами»)

    Спасибо за комментарий @senderle о преобразовании в случае, если данные представлены в строковом формате.

    2

    Итерабельность Python можно суммировать так: [sum(range(10)[1:])] . Это суммирует все элементы из списка, кроме первого элемента.

     >>> кортеж = (1,2,3,4,5)
    >>> сумма(атрибут)
    15
    >>> список = [1,2,3,4,5]
    >>> сумма(лист)
    15
     
     >>> л = raw_input()
    1 2 3 4 5 6 7 8 9 10
    >>> l = l.split()
    >>> л.поп(0)
    '1'
    >>> sum(map(int, l)) #или просто sum(int(x) for x in l) , вы должны сначала преобразовать элементы в целое число, прежде чем применять sum()
    54
     

    Вы также можете использовать метод сокращения:

     >>> myList = [3, 5, 4, 9]
    >>> myTotal = уменьшить (лямбда x, y: x + y, мой список)
    >>> мойВсего
    21
     

    Кроме того, вы можете изменить лямбда-функцию, чтобы выполнять другие операции в вашем списке.

    1

    Вы можете использовать sum для суммирования элементов списка, однако, если ваш список исходит из raw_input , вы, вероятно, захотите преобразовать элементы в int или float first:

     l = raw_input( ).