What is a subtraction function that is similar to sum() for subtracting items in list?

user1306134 picture user1306134 · Apr 1, 2012 · Viewed 24.2k times · Source

I am trying to create a calculator, but I am having trouble writing a function that will subtract numbers from a list.
For example:

class Calculator(object):
    def __init__(self, args):
        self.args = args

    def subtract_numbers(self, *args):
        return ***here is where I need the subtraction function to be****

For addition, I can simply use return sum(args) to calculate the total but I am unsure of what I can do for subtractions.

Answer

georg picture georg · Apr 1, 2012
from functools import reduce  # omit on Python 2
import operator

a = [1,2,3,4]

xsum = reduce(operator.__add__, a)  # or operator.add
xdif = reduce(operator.__sub__, a)  # or operator.sub

print(xsum, xdif)
## 10 -8

reduce(operator.xxx, list) basically "inserts" the operator in-between list elements.