DA
дока у них в разы более информативная, точно ответила бы на такой вопрос, а в питоне ничего 🙁
Size: a a a
DA
OT
RC
DA
RC
DA
E
d = {i:i*2 for i in range(10000000)}
%timeit f = 5755947 in d
47.1 ns ± 0.438 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit f = 5755947 in d.keys()
107 ns ± 2.76 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
keys = d.keys()
%timeit f = 5755947 in keys
46.7 ns ± 0.327 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
KP
KP
in
гоняется по нему. Прикольно.DA
d = {i:i*2 for i in range(10000000)}
%timeit f = 5755947 in d
47.1 ns ± 0.438 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit f = 5755947 in d.keys()
107 ns ± 2.76 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
keys = d.keys()
%timeit f = 5755947 in keys
46.7 ns ± 0.327 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
E
EM
in
гоняется по нему. Прикольно.DA
KP
E
E
DA
SS
d = {i:i*2 for i in range(10000000)}
%timeit f = 5755947 in d
47.1 ns ± 0.438 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
%timeit f = 5755947 in d.keys()
107 ns ± 2.76 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
keys = d.keys()
%timeit f = 5755947 in keys
46.7 ns ± 0.327 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
dictviews
хранят указатель на оригинальный словарь, и у dict_keys.__contains__
внутри вызывается по сути dict.__contains__
для этого указателяp