要素の数え上げ

Filter tokens in a list based on frequency – StackOverflow

要素数が100以下の場合,Counterを使うよりリストの機能を使う方が速い.

s = ['book', 'car', 'bird', 'cup', 'book', 'cup', 'river']
[x for x in set(s) if s.count(x) >= 2]

[‘cup’, ‘book’]

from collections import Counter

c = Counter(s)
[x[0] for x in c.items() if x[1] >= 2]

[‘book’, ‘cup’]

%%timeit
c = Counter(s)
[x[0] for x in c.items() if x[1] >= 2]

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

%%timeit
[x for x in set(s) if s.count(x) >= 2]

3.32 µs ± 52.3 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
 
 
 
関連:
Counterは非常に便利だけど

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

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中