Сумма элементов одномерного массива python

Сумма введённых элементов массива [закрыт]

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

2 ответа 2

функция на вход принимает итерируемый объект, например список list

пользователь может ввести символы в одной строке и тогда эту строку надо разбить на слова, слова преобразовать в список чисел и вычислить сумму этих чисел

print(sum(map(int, input().split()))) 

пользователь может ввести последовательно одно за другим n чисел и тогда надо все что он вводить оформить в виде списка и вычислить сумму по этому списку

print(sum(int(input()) for _ in range(n))) 

Есть разные способы, но предложенный Zhihar самый быстрый. Для себя заморочился, просмотреть на время выполнения. Заполняем список из 1 000 000 элементов случайными значениями в диапазоне от 2^64 до 2^65, а затем прогоняем через 4 разных способа по 100 раз:

EDITED Вынес просчет длины массива за циклы по подсказке CrazyElf (отдельное спасибо), while немного реабилитировался, но позиции в рейтинге не поменялись и добавил Numpy;)

EDITED 2 Спасибо за комментарий extrn, реальное повышение быстродействия:

import operator import time import numpy as np from functools import reduce from random import randint lst = [randint(2**64, 2**65) for _ in range(1000000)] length = len(lst) np_lst = np.array(lst) def time_decorator(function): def accepting_args(*args): start_time = time.monotonic() for i in range(100): function(*args) print(f"--- takes <(time.monotonic() - start_time)>seconds ---") return accepting_args @time_decorator def sum_list(data): return sum(data) @time_decorator def for_list(data): total = 0 for ele in data: total += ele return total @time_decorator def reduce_list(data): return reduce(operator.add, data) @time_decorator def while_list(data, length): total = 0 ele = 0 while ele < length: total = total + data[ele] ele += 1 return total @time_decorator def np_array(np_lst): return np.sum(np_lst) sum_list(lst) for_list(lst) reduce_list(lst) while_list(lst, length) np_array(np_lst) 

Результаты старых замеров:

--- sum_list takes 2.1900558471679688 seconds --- --- for_list takes 5.327928066253662 seconds --- --- reduce_list takes 9.168933391571045 seconds --- --- while_list takes 9.949931144714355 seconds --- --- np_array takes 0.0734705924987793 seconds --- 

Результаты после изменений предложенных extrn:

--- sum_list takes 2.176893711090088 seconds --- --- for_list takes 3.3837478160858154 seconds --- --- reduce_list takes 3.482226610183716 seconds --- --- while_list takes 10.27085542678833 seconds --- --- np_array takes 2.422048568725586 seconds --- 

Т.е. очевидно, что использование sum самый быстрый вариант (где-то рядом numpy ). На втором месте перебор в цикле for , на третьем использование reduce , и, внезапно :), самый "грустный" цикл while

Источник

Подсчет количества и суммы элементов в массиве Python

В этой программе нам нужно подсчитать и вывести на печать количество элементов, присутствующих в массиве Python, и вычислить их сумму.

Подсчет всех элементов массива

Некоторые элементы, присутствующие в массиве, можно найти, вычислив длину массива.

Программа Python для печати количества элементов, присутствующих в массиве

Длина приведенного выше массива равна 5. Следовательно, количество элементов, присутствующих в массиве, равно 5.

Алгоритм

  • ШАГ 1: Объявите и инициализируйте массив.
  • ШАГ 2: Рассчитайте длину массива, которая представляет собой количество элементов, присутствующих в массиве.
  • ШАГ 3: Встроенная функция может вычислить длину.
  • ШАГ 4: Наконец, напечатайте длину массива.

Массив в Python объявляется как:

Имя массива = [ele1, ele2, ele3,….]

Метод len() возвращает длину массива в Python.

Программа

#Initialize array arr = [1, 2, 3, 4, 5]; #Number of elements present in an array can be found using len() print("Number of elements present in given array: " + str(len(arr)));
Number of elements present in given array: 5

Вычисление суммы элементов массива

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

Программа Python для печати суммы всех элементов в массиве

Сумма всех элементов массива равна 1 + 2 + 3 + 4 + 5 = 15.

Алгоритм

  • ШАГ 1: Объявите и инициализируйте массив.
  • ШАГ 2: Сумма переменных будет использоваться для вычисления суммы элементов. Инициализируйте его на 0.
  • ШАГ 3: Прокрутите массив и добавьте каждый элемент массива в переменную sum как sum = sum + arr[i].

Программа

#Initialize array arr = [1, 2, 3, 4, 5]; sum = 0; #Loop through the array to calculate sum of elements for i in range(0, len(arr)): sum = sum + arr[i]; print("Sum of all the elements of an array: " + str(sum));
Sum of all the elements of an array: 15

Источник

Как найти сумму чисел в списке Python

Обложка для статьи

Python — это язык программирования, который предоставляет нам различные встроенные функции и методы для работы со списками. Одной из таких операций является нахождение суммы чисел в списке. Это может быть полезным, когда необходимо произвести анализ числовых данных, например, при подсчете среднего значения или нахождении суммы элементов, удовлетворяющих определенным условиям. В этой статье мы рассмотрим различные методы нахождения суммы чисел в списке Python.

Методы для нахождения суммы чисел в списке

Использование цикла for

Цикл for является одним из наиболее простых и часто используемых способов для нахождения суммы чисел в списке. Просто пройдитесь по каждому элементу списка и добавьте его к накопленной сумме.

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

numbers = [1, 2, 3, 4, 5] total = 0 for num in numbers: total += num print("Сумма чисел в списке: ", total)

В этом примере мы создали список чисел от 1 до 5 и присвоили его переменной numbers . Затем мы создали переменную total и присвоили ей начальное значение 0. Затем мы проходим по каждому элементу списка numbers и добавляем его к переменной total . Наконец, мы выводим сумму чисел на экран.

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

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

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] total = 0 for row in matrix: for num in row: total += num print("Сумма чисел в многомерном списке: ", total)

В этом примере мы создали многомерный список, содержащий три списка с числами. Затем мы создали переменную total и присвоили ей начальное значение 0. Затем мы используем два вложенных цикла for для перебора каждого элемента списка и добавления его к переменной total . Наконец, мы выводим сумму чисел на экран.

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

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

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

my_list = [1, 2, 3, 4, 5] sum_of_list = sum(my_list) print(sum_of_list)

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

Использование рекурсии

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

Пример реализации функции для нахождения суммы чисел в списке при помощи рекурсии:

numbers = [1, 2, 3, 4, 5] result = recursive_sum(numbers) print(result)

Здесь мы определяем функцию recursive_sum , которая принимает список чисел numbers . Если в списке остается только один элемент, то возвращаем его значение. В противном случае мы возвращаем сумму первого элемента списка и рекурсивного вызова функции для оставшейся части списка.

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

Обработка исключений при нахождении суммы чисел в списке

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

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

  1. TypeError — возникает, если элемент списка не является числом.
  2. ValueError — возникает, если в списке есть пустые строки или нечисловые значения.

Для обработки этих ошибок можно использовать конструкцию try-except. Например, чтобы обработать ошибку TypeError, мы можем использовать следующий код:

numbers = [1, 2, 3, '4', 5] total = 0 for num in numbers: try: total += num except TypeError: print(f"Элемент не является числом") print(f"Сумма чисел в списке: ")

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

Элемент 4 не является числом Сумма чисел в списке: 11

Обработка ошибок позволяет избежать прерывания работы программы при возникновении ошибок и предоставляет возможность корректно обработать их в процессе выполнения программы.

Источник

Sum of Elements in a List in Python

Lists are very commonly used to store sequences of values (for example, numbers) in Python. When working with lists, it can be handy to know how to quickly get the sum of values in a list. For example, you have a list of your recorded footsteps in the last seven days and you want to know the total sum. In this tutorial, we will look at how to get the sum of the elements in a list in Python with the help of some examples.

How to get the sum of a list of numbers in Python?

sum of elements in a python list

You can use the python built-in sum() function to get the sum of list elements. Alternatively, you can use a loop to iterate through the list items and use a variable to keep track of the sum.

📚 Discover Online Data Science Courses & Programs (Enroll for Free)

Introductory ⭐

Intermediate ⭐⭐⭐

🔎 Find Data Science Programs 👨‍💻 111,889 already enrolled

Disclaimer: Data Science Parichay is reader supported. When you purchase a course through a link on this site, we may earn a small commission at no additional cost to you. Earned commissions help support this website and its team of writers.

Let’s look at the above-mentioned methods with the help of some examples.

Using sum() to get the total in a list

The built-in sum() function in Python is used to return the sum of an iterable. To get the sum total of a list of numbers, you can pass the list as an argument to the sum() function.

# create a list ls = [10, 15, 20, 25] # sum of list elements sum(ls)

We get the sum of the values in the list as a scaler value.

Note that the sum() function may result in loss of precision with extended sums of floating-point numbers. For example –

# create a list ls = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] # sum of list elements sum(ls)

As an alternative, you can use the math standard library’s fsum() function to get an accurate sum of floating-point numbers and prevent loss of precision.

import math # create a list ls = [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1] # sum of list elements math.fsum(ls)

We get the accurate result this time. For more on the fsum() function, refer to its documentation.

Using loop to get the sum

Alternatively, you can use the straightforward method of iterating through the list elements and keeping track of the sum.

# create a list ls = [10, 15, 20, 25] # use a loop to get the sum total = 0 for item in ls: total += item print(total)

We get the sum of the values in the list.

You might also be interested in –

Subscribe to our newsletter for more informative guides and tutorials.
We do not spam and you can opt out any time.

Author

Piyush is a data professional passionate about using data to understand things better and make informed decisions. He has experience working as a Data Scientist in the consulting domain and holds an engineering degree from IIT Roorkee. His hobbies include watching cricket, reading, and working on side projects. View all posts

Data Science Parichay is an educational website offering easy-to-understand tutorials on topics in Data Science with the help of clear and fun examples.

Источник

Читайте также:  Python no module named platform
Оцените статью