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
|
Выход:
22 252 251 35
Ошибки и исключения
TypeError : Эта ошибка возникает в том случае, если в списке есть что-то кроме цифр.
Python3
|
RunTime Errlime:
9003 2Runtime. Файл «/home/23f0f6c9e022aa96d6c560a7eb4cf387.py», строка 6, в Сумма = сумма (приб.) TypeError: неподдерживаемые типы операндов для +: ‘int’ и ‘str’
Таким образом, список должен содержать числа Практическое применение: Задачи, требующие вычисления суммы для выполнения дальнейших операций, таких как поиск из среднего числа.
Python3
|
спросил
Изменено 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( ).