6.2. Optimization Definition
6.2.1. Define Empty
You can define empty
listin two ways:data = []ordata = list()data = []is faster
Empty list:
>>> data = []
>>> data = list()
Performance:
>>> %%timeit -n 1000 -r 1000 # doctest: +SKIP
...
... data = []
...
11.2 ns ± 4.62 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
10.2 ns ± 2.88 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
10.6 ns ± 3.48 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
10.5 ns ± 4.59 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
10.4 ns ± 3.59 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
>>> %%timeit -n 1000 -r 1000 # doctest: +SKIP
...
... data = list()
...
25.1 ns ± 7.23 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
27.9 ns ± 11.9 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
26.6 ns ± 16.8 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
29.7 ns ± 13.3 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
29.4 ns ± 13.7 ns per loop (mean ± std. dev. of 1000 runs, 1,000 loops each)
Date: 2026-05-29
Python: 3.14.5
IPython: 9.13.0
System: macOS 26.5
Computer: MacBook M3 Max
CPU: 16 cores (12 performance and 4 efficiency) / 3nm
RAM: 128 GB RAM LPDDR5
6.2.2. Rationale
>>> from dis import dis
>>> dis('a = []')
0 RESUME 0
1 BUILD_LIST 0
STORE_NAME 0 (a)
LOAD_CONST 0 (None)
RETURN_VALUE
>>> dis('a = list()')
0 RESUME 0
1 LOAD_NAME 0 (list)
PUSH_NULL
CALL 0
STORE_NAME 1 (a)
LOAD_CONST 0 (None)
RETURN_VALUE