2015-12-06 49 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)) 
相關問題