В Python вычисление суммы всех аргументов или входных значений — обычная задача. Независимо от того, есть ли у вас список, кортеж или переменное количество аргументов, существует несколько способов добиться этого. В этой статье блога мы рассмотрим десять различных методов вычисления суммы всех аргументов на примерах кода. Давайте погрузимся!
Метод 1: использование цикла
def sum_all(*args):
total = 0
for arg in args:
total += arg
return total
result = sum_all(1, 2, 3, 4, 5)
print(result) # Output: 15
Метод 2: использование встроенной функции sum()
def sum_all(*args):
return sum(args)
result = sum_all(1, 2, 3, 4, 5)
print(result) # Output: 15
Метод 3. Использование функции уменьшения() из модуля functools
from functools import reduce
def sum_all(*args):
return reduce(lambda x, y: x + y, args)
result = sum_all(1, 2, 3, 4, 5)
print(result) # Output: 15
Метод 4. Использование выражения-генератора
def sum_all(*args):
return sum(arg for arg in args)
result = sum_all(1, 2, 3, 4, 5)
print(result) # Output: 15
Метод 5. Использование рекурсии
def sum_all(*args):
if len(args) == 1:
return args[0]
else:
return args[0] + sum_all(*args[1:])
result = sum_all(1, 2, 3, 4, 5)
print(result) # Output: 15
Метод 6: использование библиотеки numpy
import numpy as np
def sum_all(*args):
return np.sum(args)
result = sum_all(1, 2, 3, 4, 5)
print(result) # Output: 15
Метод 7. Использование функции math.fsum()
import math
def sum_all(*args):
return math.fsum(args)
result = sum_all(1, 2, 3, 4, 5)
print(result) # Output: 15
Метод 8. Использование функции статистики.fsum()
import statistics
def sum_all(*args):
return statistics.fsum(args)
result = sum_all(1, 2, 3, 4, 5)
print(result) # Output: 15
Метод 9. Использование рекурсивной лямбда-функции
sum_all = lambda *args: args[0] if len(args) == 1 else args[0] + sum_all(*args[1:])
result = sum_all(1, 2, 3, 4, 5)
print(result) # Output: 15
Метод 10. Использование метода sum() итерируемого объекта
class SumAll:
def __init__(self, *args):
self.args = args
def __iter__(self):
return iter(self.args)
def __len__(self):
return len(self.args)
def __add__(self, other):
return sum(self.args) + other
sum_all = SumAll(1, 2, 3, 4, 5)
result = sum(sum_all)
print(result) # Output: 15
Вычисление суммы всех аргументов в Python можно выполнить различными методами. В этой статье мы рассмотрели десять различных подходов, включая циклы, встроенные функции, рекурсию и зависимости библиотек, таких как numpy, математика и статистика. В зависимости от ваших конкретных требований и характера вашего вклада вы можете выбрать наиболее подходящий метод из представленных примеров. Получайте удовольствие, экспериментируя с этими подходами и оптимизируя свой код для эффективных вычислений сумм!