リストへのappendに比べて、setへのaddは70nsほど遅い

  • ハッシュ値の計算コストなど
  • これはC世界のコストなのでPyPyとかでも縮みにくい
    • 結果ABC176で発生したように「setでuniqueにするよりループを空回りさせた方が速い」という現象が起こる python
In [77]: %%timeit
    ...: xs = []
    ...: xs.append(1)
    ...: 
71.9 ns ± 1.01 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)

In [78]: %%timeit
    ...: xs = set()
    ...: xs.add(1)
    ...: 
141 ns ± 0.457 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)