什么是减法函数,类似于sum(),用于减去列表中的项目?

use*_*134 9 python sum function subtraction

我正在尝试创建一个计算器,但我在编写一个将从列表中减去数字的函数时遇到问题.
例如:

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****
Run Code Online (Sandbox Code Playgroud)

另外,我可以简单地使用return sum(args)来计算总数,但我不确定我能为减法做些什么.

geo*_*org 12

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
Run Code Online (Sandbox Code Playgroud)

reduce(operator.xxx, list) 基本上"插入"列表元素之间的运算符.


mac*_*ing 6

这完全取决于你的意思.您可以简单地从第一个数字中减去其余数字的总和,如下所示:

def diffr(items):
    return items[0] - sum(items[1:])
Run Code Online (Sandbox Code Playgroud)

这很难说,因为在减法中它取决于你减去的顺序; 但是如果你从左到右减去,就像在标准操作顺序中那样:

x0 - x1 - x2 - x3 - ... - xn = x0 - (x1 + x2 + x3 + ... + xn)

这与diffr()上面定义的代码片段的解释相同.

它也许看起来像计算器的情况下,x0可能是你的运行总数,而args参数可能代表数字x1通过xn.在这种情况下,您只需sum(args)从运行总计中减去.也许我在你的代码中读得太多了...我想你明白了,对吧?