一組のユニークなリストアイテムを保持するセットがあります: これは私がそれを定義しようとしている方法です。重複するリストを削除しますか?
results = set([], key= self.comparator)
これは私がいない場合は
TypeError: set() does not take keyword arguments
明らかセットのコンストラクタは、キー、 を受け入れていない、
def comparator(self, l1, l2):
if len(l1) != len(l2):
return -1
i = 0
while i < len(l1):
if l1[i] != l2[i]:
return -1
i += 1
return 0
これは、次のエラーをスローし、コンパレータ機能でありますキーを渡すと、次のエラーが表示されます。
TypeError: unhashable type: 'list'
したがって、重複するリストを排除しようとしている方法は機能しません。 Pythonでどうすればいいですか?
なぜ 'set'コンストラクタがキーを受け入れると思いましたか? –
Setは、リストなどの反復可能な単一の引数だけを受け入れますが、他の引数は受け入れられません。 –
リストをセットに格納することはできません。タプルを試してみてください。 – ayhan