I just was comparing the performance difference between [].append(x)
and [] + [x]
. I just realized [].append(x)
was faster. But when i tried it with [].extend([x])
is faster. You just can use it while optimizing your code. Do not use it while you're coding, but when you're going to optimize it use [].extend([x])
. Simple benchmarks
>>> import timeit
>>> start = timeit.timeit()
>>> [1, 2, 3, 4] + [5]
[1, 2, 3, 4, 5]
>>> end = timeit.timeit()
>>> end - start
0.006420466001145542
>>> start = timeit.timeit()
>>> [1, 2, 3, 4].append(5)
>>> end = timeit.timeit()
>>> end - start
0.004373588995804312
>>> start = timeit.timeit()
>>> [1, 2, 3, 4].extend([5])
>>> end = timeit.timeit()
>>> end - start
0.0022365170007105917
Results for the first benchmark
Fastest: [1, 2, 3, 4].extend([5])
0.0022365170007105917 seconds
Medium: [1, 2, 3, 4].append(5)
0.004373588995804312 seconds
Slowest: [1, 2, 3, 4] + [5]
0.006420466001145542 seconds
Second benchmarks from CLI
lambdef ~ Ξ» python -mtimeit -s'[1, 2, 3, 4] + [5]'
100000000 loops, best of 3: 0.00939 usec per loop
lambdef ~ Ξ» python -mtimeit -s'[1, 2, 3, 4].append(5)'
100000000 loops, best of 3: 0.00938 usec per loop
lambdef ~ Ξ» python -mtimeit -s'[1, 2, 3, 4].extend([5])'
100000000 loops, best of 3: 0.00993 usec per loop
Results for the second benchmark
Fastest: [1, 2, 3, 4].append(5)
100000000 loops, best of 3: 0.00938 usec per loop
Medium: [1, 2, 3, 4] + [5]
100000000 loops, best of 3: 0.00939 usec per loop
Slowest: [1, 2, 3, 4].extend([5])
100000000 loops, best of 3: 0.00993 usec per loop
So when you add items continuously, you should prefer .append()
, otherwise you should use .extend()
.
Top comments (0)