3.5. Optimization Membership
3.5.1. List Membership
Small list
:
>>> users = ['alice', 'bob', 'carol']
>>> # doctest: +SKIP
... %%timeit -r 1000 -n 1000
... 'mallory' in users
...
30.2 ns ± 5.99 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
30.2 ns ± 6.1 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
30.7 ns ± 6.89 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
30.9 ns ± 6.84 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
31.7 ns ± 6.22 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
Larger list
:
>>> users = ['alice', 'bob', 'carol', 'dave', 'eve', 'frank']
>>> # doctest: +SKIP
... %%timeit -r 1000 -n 1000
... 'mallory' in users
...
45 ns ± 9.23 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
45.1 ns ± 9.61 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
45.7 ns ± 9.65 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
45.8 ns ± 10.1 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
45.9 ns ± 10.1 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
3.5.2. Set Membership
Small set
:
>>> users = {'alice', 'bob', 'carol'}
>>> # doctest: +SKIP
... %%timeit -r 1000 -n 1000
... 'mallory' in users
...
15.1 ns ± 1.85 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
15.3 ns ± 3.73 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
15.5 ns ± 4.36 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
15.8 ns ± 4.65 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
15.9 ns ± 3.46 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
Larger set
:
>>> users = {'alice', 'bob', 'carol', 'dave', 'eve', 'frank'}
>>> # doctest: +SKIP
... %%timeit -r 1000 -n 1000
... 'mallory' in users
...
15.4 ns ± 4.6 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
15.8 ns ± 4.69 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
15.9 ns ± 3.7 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
16 ns ± 3.02 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
16.1 ns ± 3.26 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)