リストからユニークな要素(⊇リスト)だけ残す

How to get a unique list of list in python? [on hold] – StackOverflow

集合型(set)を使う.ここで,知らないと悩む理由は,

set([1, 2, 3, 4, 3])

{1, 2, 3, 4}

と同様にして

set([1, 2, [3], 4, 3])

TypeError: unhashable type: ‘list’

となるからだろうか.

set()に渡すときには,listではなくtupleじゃないといけない.

set([1, 2, tuple([3]), 4, 3])

{1, 2, 3, 4, (3,)}

同様にして,

a = [[10, 20], [40], [30, 56, 25], [10, 20], [33], [40]]
set(map(tuple, a))

{(10, 20), (30, 56, 25), (33,), (40,)}

リストの形にしたければ,

list(map(list, set(map(tuple, a))))

[[30, 56, 25], [40], [10, 20], [33]]

 
 
 

関連:
複数のリストからユニークな要素だけ残す

広告
カテゴリー: 未分類 パーマリンク

リストからユニークな要素(⊇リスト)だけ残す への4件のフィードバック

  1. ピンバック: 整数配列からa + b + c = 0を満たす様な組み合わせを求める | 粉末@それは風のように (日記)

  2. ピンバック: 2つのリストを結合して重複を削除 | 粉末@それは風のように (日記)

  3. ピンバック: 差集合 | 粉末@それは風のように (日記)

  4. ピンバック: リストから重複要素を取り除いて新しいリストを作る最速の方法 | 粉末@それは風のように (日記)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中