Istnieją dwie główne różnice. Pierwszym jest to, że +
jest bliższy znaczeniowo extend
niż append
:
>>> a = [1, 2, 3]
>>> a + 4
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
a + 4
TypeError: can only concatenate list (not "int") to list
>>> a + [4]
[1, 2, 3, 4]
>>> a.append([4])
>>> a
[1, 2, 3, [4]]
>>> a.extend([4])
>>> a
[1, 2, 3, [4], 4]
Drugi, bardziej widoczne, różnica polega na tym, że metody pracy w miejscu: extend
jest rzeczywiście jak +=
- w rzeczywistości, to ma dokładnie takie samo zachowanie, jak +=
, z tym wyjątkiem, że może zaakceptować każdą iterowalną, podczas gdy +=
może zająć tylko inną listę.