これを試してみましたが、出力する必要があります([1,3,2])。問題は、停止せずに無限の時間に出力を印刷し続けることです。コードの考え方を変えて解決策がありますか?別のリストや文字列を作成せずに、リストを取り出してすべての重複を削除した関数を書きたい
a= [1,2,2,2,1,3,2]
def rem_dup(L):
while len(L):
for i in L:
y= L.count(i)
if y>1:
L.remove(i)
print L
rem_dup(a)
他のリストを作成できないのはなぜですか?あなたのアルゴリズムはO(n^2)です。大きなリストでは非常に非効率的です。 –
'list(set(a))'は最も簡単ですが、中間のデータ構造が必要です。これは私の宿題のようなにおいがする。 – TemporalWolf
@TemporalWolf、 'a'の項目がハッシュ可能であると仮定します; –