リストから重複を削除する関数を手動で作成しようとしています。私は似たようなことをするPython関数があることを知っていますが(set()
)、自分で作成したいのです。これは私が持っているものです。リスト内の重複を削除する関数を作成する
def remove(lst):
for i in range(len(lst)):
aux = lst[0:i] + lst[i+1:len(lst)]
if lst[i] in aux:
del(lst[i])
return lst
私は用が現在オンになっている以外のすべての項目にサブリストを作成するような何かをしようとし、その項目がリストに残っているかどうかを確認しました。そうであれば、取り外します。
問題は、それが私に範囲外のエラーのインデックスを与えることです。 for i in range(len(lst)):
行は、開始するたびに更新されませんか?リストからアイテムを削除するので、リストは短くなります。したがって、10個のアイテムと2個の複製があるリストの場合、7番目に停止する代わりにインデックス9になります。
これを修正する方法はありますか、これをやり直すのは別の方法ですか?
を。 – JETM
*私はこれをやってみるのは別の方法ですか?* <---はい、その – wim
?私はそれをやろうとしましたが、del(lst [d])dが重複するすべてのインデックスを持つリストであるとすぐに、dの他のすべての値がオフになっているため、 – Myntekt