2014-03-27 64 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

感谢提到。我的错! –