Функция sum в python

Функция sum в python

Краткий обзор встроенных функций в Python 3.

Встроенные функции, выполняющие преобразование типов

bool(x) — преобразование к типу bool, использующая стандартную процедуру проверки истинности. Если х является ложным или опущен, возвращает значение False, в противном случае она возвращает True.

bytearray([источник [, кодировка [ошибки]]]) — преобразование к bytearray. Bytearray — изменяемая последовательность целых чисел в диапазоне 0≤X

Сидите вы на работе и смотрите на дневную статистику по заявкам разных типов:

Задача — посчитать агрегированную статистику за все дни. Всё вроде понятно. Тут подходит тимлид и говорит, что если решите задачу однострочником, он подарит вам жёлтую резиновую уточку.

Устоять перед этим решительно невозможно.

Словари → счётчики

Сначала от словарей надо перейти к счётчикам. Воспользуемся для этого функцией map() . Она принимает на входе функцию и последовательность (iterable), после чего применяет функцию к каждому элементу последовательности и возвращает, что получилось. Например:

abs() возвращает абсолютное значение числа, а list() тут нужен, чтобы отработал map (сам по себе он ленивый, пока не пнёшь — не полетит).

В нашем случае последовательностью будет набор дневных статистик, а функцией — конструктор счётчика:

map object — это итератор, который сделает из словарей счётчики, когда нам это действительно понадобится — в момент суммирования.

Счётчики → агрегат

Окей, теперь осталось только посчитать сумму от этого добра. Как мы знаем, у счётчиков перекрыт оператор сложения, так что почему бы просто не вызвать sum() на них?

Эээ, что? Откуда тут int , мы же суммируем объекты Counter ?

Оказывается, функция sum() принимает два аргумента:

  1. последовательность, которую суммируем
  2. первое слагаемое для итоговой суммы, по умолчанию — 0
Читайте также:  Vba excel метод range

Получается, в нашем случае sum() пытается сложить 0 со счётчиком от monday , и, естественно, ломается. Решение — передать в качестве первого слагаемого пустой счётчик:

Объединяем всё вместе:

Почему вздыхает Гвидо

Гвидо ван Россум недолюбливает map() и, кажется, функциональщину как таковую. Вместо неё он предпочитает пользоваться comprehensions.

В нашем случае вместо map() можно использовать такую конструкцию:

Используйте с осторожностью

Ради жёлтой резиновой уточки на многое можно пойти, но всё-таки лучше использовать однострочники с осторожностью. Главный критерий хорошего кода — простота понимания. Поэтому вполне можно добавить промежуточную переменную, а то и две:

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

Лично мне такой вариант даже больше нравится ツ

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

Синтаксис:

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

Ниже приведена реализация суммы () на Python

# Python-код для демонстрации работы
# сумма ()

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

# параметр запуска не указан

Sum = sum (numbers)

Sum = sum (numbers, 10 )

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

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

# Python-код для демонстрации исключения
# сумма ()

# параметр запуска не указан

Sum = sum (arr, 10 )

Так что список должен содержать цифры

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

# Python-код для демонстрации практического применения
№ суммы ()

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

Ссылка на основную публикацию
Фиксированная шапка сайта при прокрутке
Допустим у вас важная информация например контакты находятся в шапке и вы хотите что бы они всегда были на веду...
Удаление последнего элемента списка
Введение. Основные операции О дносвязный список – структура данных, в которой каждый элемент (узел) хранит информацию, а также ссылку на...
Удаление дубликатов фотографий на русском бесплатно
Здравствуйте Уважаемый Друг. У каждого из нас на компьютере хранится большое количество различных фотографий изображений и тому подобных картинок. Парой...
Фиксированное меню при скролле
Создаём эффект залипания при прокручивании страницы на блоках меню навигации, бокового виджета и меню с помощью jQuery и без него....
Adblock detector