2017-09-20 2 views
-1

Ich fühle mich wie ich sollte nicht so viel Mühe mit diesem haben, aber nichts, was ich versucht habe, scheint zu funktionieren.Wie alle Elemente in einer Liste von ganzen Zahlen summieren, während mit Ausnahme von zwei bestimmten ganzen Zahlen?

Ich brauche alle Elemente in einer Liste von ganzen Zahlen (nums) zu addieren, während ohne zwei spezifische intergers (a und b).

Was ich habe, so weit:

def suminout(nums, a, b): 
    total = 0 
    for i in range(len(nums)): 
     if nums[i] != a and nums[i] != b: 
      ?????? 
    return total 

Vielen Dank im Voraus für Ihre Hilfe!

+0

'return sum (num für num in nums wenn num nicht in {a, b})' –

Antwort

0

Fügen Sie einfach die Nummer (nums[i]) auf den Gesamt mit:

total = total + nums[i] 

Oder:

total += nums[i] 

Beachten Sie, dass die vordefinierte sum Funktion mit einem Verständnis nutzen könnten Ihren Code zu verkürzen:

def suminout(nums, a, b): 
    return sum(i for i in nums if i not in [a,b]) 
0

Verwenden Sie einen Generator Verständnis zugeführt t o Einbau-sum

l = [1,2,3,4,5] 

result = sum(x for x in l if x not in [3,4]) 

print(result) 

Ihre Funktion:

def suminout(nums, a, b): 
    return sum(x for x in nums if x not in [a,b])