-2

次のコードを入力すると。リスト内の重複するアイテムを削除しようとしています。このリストには 10K のペアが含まれる場合があります。

>>> t = [['a','1'],['a','1'],['a','2']...]
>>> t = list(set(t))

Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
t = list(set(t))
TypeError: unhashable type: 'list'
>>>
4

2 に答える 2

1

リストをタプルに置き換えてみてください:('a','1')。私の知る限り、タプルはハッシュ可能です。

于 2013-03-02T02:28:15.077 に答える
1

これが古いことは知っていますが、それでも Google で最初に表示されます。タプルは、「サブリスト」ごとに 2 つの要素しかない場合に機能しますが、重複したサブリストをより一般的に削除したい場合は、次のようなリストがあります。

a=[[1,2],[1,2],[1,2],[1,4],[1,2,3],[1,2],[1,2]]

あなたが使用することができます

b=[a[x] for x in range(len(a)) if not(a[x] in a[:x])]

そして b は a からの一意の要素のみを持ちます

于 2015-12-10T21:56:41.110 に答える