Рубрики
Без рубрики

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

Суммируя список чисел появляется везде в кодировке. К счастью, Python предоставляет функцию встроенной суммы () для суммирования всех элементов в списке Python — или в любом другом, имеющем в этом вопросе. (Официальные документы) Синтаксис представляет собой сумму (потенциал): ArgumentDescrieTriciTerableSUM по всем элементам в утечке. Это может быть список, кортеж, комплект, … Список 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

Это не самый красивый способ, но это читается, и он работает (и, и, вы не хотели использовать 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 и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.