2015-12-06 54 views
-1

我用这段代码得到'列表索引超出范围',但是当我初始化new_list作为一个空列表时,我没有。有人可以解释为什么吗? 该函数获取数字列表并“删除”重复项。列表索引超出范围,不知道为什么?

def remove_duplicates(numbers): 
    new_list = [numbers[0]] 
    for x in numbers: 
     if x not in new_list: 
      new_list.append(x) 
    return new_list 
+0

“数字”是什么?你期望'数字[0]'是什么? – doctorlove

+0

'numbers'是一个空列表。 –

+0

数字应该是一个整数列表,@doctorlove – JiniHendrix

回答

0

当数字是/可能是空列表时,您无法获得numbers[0]。 更好的解决方案是使用numbers[0] if len(numbers) or None

+0

事实上,你不需要初始化list到'numbers [0]',这足以将它初始化为'[]'。 – lejlot

+0

是的,我只是好奇它为什么会使@lejlot有所作为。想我现在明白了,谢谢 – JiniHendrix

1

这确实是一个XY问题。如果你想删除列表中的重复项,只需将其设置为:

unique_values = list(set(numbers)) 
相关问题