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)