2016-11-13 10 views
0

このプログラムでは、重複した値をリストから削除したいと考えています。リストに関するPythonプログラミング

list = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 

def loop(): 
    for a in range(len(list)-1): 
     for b in range(a+1,len(list)): 
      if list[a] == list[b]: 
       del list[a] 
    print(list) 
loop() 

しかし、それは私にこのエラーを与えている:これは私が書いたものである

enter image description here

あなたは私を助けることができますか?

+0

あなたはリストをループしている間、あなたが欲しいアイテムのみを使用して新しいリストを作成し、アイテムを削除しているからです。重複を削除したい場合は 'list(set(listName))' – Keatinge

答えて

-1

は、次のようなものを実行します。

Pythonで
create new_list 
for item in list: 
    if item not in new_list: 
     add item to new_list 
list = new_list 

list = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 

print list 
new_list = [] 
for item in list: 
    if item not in new_list: 
     new_list.append(item) 
list = new_list 
print list 

は今python filename.pyを実行し、次の2つのリストの間の差が表示されます。あなたはnumpyを持っている場合は

0

は、あなたが行うことができます(私はあいまいさを避けるために、lにあなたのリストを改称):

import numpy as np 
l = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 
l_no_duplicates = list(np.unique(l)) 
0

アイテムのユニークなコレクションを取得するための一般的なアプローチは、セットを使用することです。集合は異なるオブジェクトの順不同の集合です。

list = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] 
newList = list(set(list)) 

[1, 2, 3, 5, 8, 13, 34, 21, 55, 89]

関連する問題