📝
もっと簡単で高速に一意なデータの判別がしたい
お詫び
Qiitaの元記事にて、区切り線を「---」で書いている場所があり、これがZennの記法に干渉して一部うまく表示できない記事がある事を認識しています。
全ての記事を精査しきれていないため、お手数ですがお見かけの際は教えていただけると大変喜びます。
結構簡単に出来るみたいです。
当初は素直にlist作ってその中にtargetが存在するかチェックするループを使って…としていたんですが、数によってはめちゃくちゃ重くなるforを実行してしまいます。
これがイケてないなぁ、と思った時はこういう書き方にすると速くなるようです。
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 追記
<a href="https://qiita.com/nomurasan/items/a53faad2d3ad566f9b69#comment-280a52d8e401369f0d30">とてもステキなコメント</a>をいただきました!
私がまだ検証出来ていないので記事にうまく反映させられないため、ご紹介に留めます。
Discussion