Edited at

or列挙、リスト、タプル、集合でのif文の速度評価


まえがき

Pythonにおけるif文の長いor列挙の回避方法

上記の記事で、if文においてorを列挙するよりリストのin演算子を使用したほうが少しスマートと書いた。

はたして速度面ではどうか。


計測

とても長いプログラムをベタ書きしたら記事にアクセスできなくなったので、プログラムは以下を参照してください。

https://gist.github.com/taketakeyyy/33c460066ec9a1a75f5cf55cfbb043a9


結論


  • リストとタプルを使ったin演算子によるifの比較が最も速い(両方とも同程度の速さ)

  • orの列挙もリストと比べて遅すぎるというわけではない

  • 集合(set)は遅すぎる

メモリ使用量は考慮していない。

上記結果をふまえて、個人的にはやはりin演算子を使ったほうが少しスマートだと思う。