0

我正在尝试从用户输入的列表中减去数字。例如,我有这个要添加的东西,它按照我想要的方式工作:

print("\nAddition")
n = int(input('How many numbers are you adding?: '))
L = []
for i in range(n):
    L.append(int(input("Enter a number: ")))
    answer = sum(L)
    print(answer)

我该如何做同样的减法?

4

1 回答 1

1

对于减法,您可以自己循环并减去:

result = L[0]
for num in L[1:]:
    result -= num

这假定您要从第一个数字开始,然后从第一个值中减去所有其他数字。

您仍然可以使用sum(),但除了第一个数字之外,您必须将map()所有数字设为负数:

from operator import neg

result = sum(map(neg, L[1:]), L[0])

operator.neg()函数否定数字,我们使用第二个参数sum()来提供一个起始值。

演示:

>>> from operator import neg
>>> L = [42, 10, 3, 8]
>>> sum(map(neg, L[1:]), L[0])
21
于 2013-10-09T20:51:41.927 回答