2013-10-09 50 views
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) 

我如何去這樣做同樣的減法?

回答

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() function則無效數字,我們使用的第二個參數來sum()提供起始值。

演示:

>>> from operator import neg 
>>> L = [42, 10, 3, 8] 
>>> sum(map(neg, L[1:]), L[0]) 
21 
+0

第二個選項的效果要對我好,謝謝你。 –