Getting unique tuples from a list [duplicate] – StackOverflow

frozensetはこういう風に使えるのかー.
(setはunhashable typeだけど,frozensetはhashableだから)

list(dict.fromkeys([('a', 'b'), ('c', 'd'), ('b', 'a')]))

[(‘a’, ‘b’), (‘c’, ‘d’), (‘b’, ‘a’)]

list(map(tuple, set(map(frozenset, [('a', 'b'), ('c', 'd'), ('b', 'a')]))))

[(‘d’, ‘c’), (‘b’, ‘a’)]

frozensetを使わないでやろうと思うと,

a = set()
for x in [('a', 'b'), ('c', 'd'), ('b', 'a')]:
    a.add(tuple(set(x)))
list(a)

[(‘d’, ‘c’), (‘b’, ‘a’)]

a = {}
for x in [('a', 'b'), ('c', 'd'), ('b', 'a')]:
    a.setdefault(tuple(set(x)))
list(a)

[(‘b’, ‘a’), (‘d’, ‘c’)]

%%timeit
list(map(tuple, set(map(frozenset, [('a', 'b'), ('c', 'd'), ('b', 'a')]))))

3.16 µs ± 103 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%%timeit
a = set()
for x in [('a', 'b'), ('c', 'd'), ('b', 'a')]:
    a.add(tuple(set(x)))
list(a)

3.57 µs ± 114 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%%timeit
a = {}
for x in [('a', 'b'), ('c', 'd'), ('b', 'a')]:
    a.setdefault(tuple(set(x)))
list(a)

3.85 µs ± 146 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
 
 
 
Python 3.6 – is there a condition that can behave like otherwise? – StackOverflow

a = ['12','12','12','12','12','23','24','24','31','31']
b = ['1','2','2','2','2','2','5','5','5','5']
print(list(zip(*[[x, y] for x, y in zip(a, b) if a.count(x) == 5])))
print(list(zip(*[[x, y] for x, y in zip(a, b) if a.count(x) == 2])))

[(’12’, ’12’, ’12’, ’12’, ’12’), (‘1’, ‘2’, ‘2’, ‘2’, ‘2’)]
[(’24’, ’24’, ’31’, ’31’), (‘5’, ‘5’, ‘5’, ‘5’)]

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

への3件のフィードバック

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

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

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

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中