2014-03-27 66 views
0

我需要幫助,試圖總結列表中的數字,同時忽略重複。假設我有一個列表[1,2,3,3,3]答案應該是6,因爲1 + 2 + 3 = 6。額外的2和額外的3不應該包含在計算中。如何總結數字列表而忽略重複數字?

def sumOfUniqueNums(list): 

    sum = 0 

    list1 = [1, 2, 2, 3, 3, 3] 
    remove = [] 
    [remove.append(i) for i in list1 if i not in remove] 

    sum(list1) 

    return sum 

更新功能

def sumOfUniqueNums(numbers): 
    return sum(set(numbers)) 
+0

什麼語言? – aliteralmind

+0

我正在使用Python語言。 – user2581724

+1

爲此使用一組。 'sum(set(list1))' – karthikr

回答

4

一個set不能包含重複的值,所以它的那樣簡單

sum(set(list1)) 

Python將讓你覆蓋內置的名字,雖然如此,你」在此之前,需要取消分配sum

+0

我得到一個錯誤:第9行,sumOfUniqueNums sum(set(list1)) TypeError:'int'對象不可調用 – user2581724

+0

可能是因爲您在嘗試此行之前設置sum = 0?除了return關鍵字或許 – Totem

+0

確保你不使用'sum'或'list'作爲變量名,因爲它們與python中的保留名衝突(sum已經是一個函數了,列表是一種數據結構) – Totem

0

試試這個,應該很好地工作:

def sumOfUniqueNums(values): 
    return sum(set(values)) 

print sumOfUniqueNums([1,1,2,2]) 
3 

print sumOfUniqueNums([1,1,2,2,3]) 
6 
+0

感謝提到。我的錯! –