LoginSignup
1
2

More than 5 years have passed since last update.

もっと簡単で高速に一意なデータの判別がしたい

Last updated at Posted at 2018-01-09

結構簡単に出来るみたいです。
当初は素直にlist作ってその中にtargetが存在するかチェックするループを使って…としていたんですが、数によってはめちゃくちゃ重くなるforを実行してしまいます。
これがイケてないなぁ、と思った時はこういう書き方にすると速くなるようです。

重複除外.py
def uniq(target):
    if cache.has_key(target) == False:
        cache[target] = target
        return False
    else:
        return True

cache = {}
for target in (hoge, fuga...):
   if uniq(target) == True:
       print '登録済み'
   else:
       print '登録しました'

私の環境では改善されたんですが、ケースバイケースの面はあるかも知れません。

2018/02/10 追記

とてもステキなコメントをいただきました!
私がまだ検証出来ていないので記事にうまく反映させられないため、ご紹介に留めます。

1
2
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2