Ci sono due principali differenze. La prima è che +
è più vicino al significato di extend
rispetto a 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]
L'altro, più importante, la differenza è che i metodi di lavoro sul posto: extend
è in realtà come +=
- in realtà, è esattamente lo stesso comportamento di +=
con la differenza che può accettare qualsiasi iterabile, mentre +=
può solo prendere un'altra lista.