-3

与えられたリストのリスト:

L = [[1,2,3], [3,4,5], [1,2,3]]

各リストが一意であるリストを取得する方法:

L = [[1,2,3], [3,4,5]]

ありがとう

4

4 に答える 4

3

サブリストの順序を気にしない場合:

In [11]: list(map(list, set(map(tuple, L))))
Out[11]: [[3, 4, 5], [1, 2, 3]]

さらに良いことに、データ構造としてタプルのセットを使用するように移行する必要があります。

于 2013-03-20T17:33:50.770 に答える
2

ちょっとジンクしますが、これはどうですか?

[list(el) for el in set(tuple(el) for el in L)]

リストは相互に比較できませんが、タプルは比較できるため、これは機能します。リストのリストから直接セットを作成しようとすると、エラーメッセージが表示されます。

unhashable type: 'list'
于 2013-03-20T17:34:26.400 に答える
1
L = [[1,2,3], [3,4,5], [1,2,3]]
newlist = []
for item in L:
    if item not in newlist:
        newlist.append(item)
于 2013-03-20T17:37:48.147 に答える
0

タプルのセットに変換してから、リストに戻すことができます。

L = [[1,2,3], [3,4,5], [1,2,3]]
setL = set(tuple(i) for i in L) 
newL = list(list(i) for i in setL)
print newL

[[3、4、5]、[1、2、3]]

于 2013-03-20T18:55:32.683 に答える