L'opérateur de concaténation +
est un binaire opérateur infixe qui, lorsqu'il est appliqué à des listes, retourne une nouvelle liste contenant tous les éléments de chacun de ses deux opérandes. L' list.append()
est une méthode d' mutator
sur list
qui ajoute son single object
argument (dans votre exemple de la liste c
) de l'objet list
. Dans votre exemple, il en résulte c
ajout d'une référence à lui-même (d'où la récursivité infinie).
Une alternative à '+' concaténation
L' list.extend()
méthode est également une méthode mutateur qui concatène ses sequence
argument avec le sujet list
. Plus précisément, il ajoute à chacun des éléments de sequence
dans l'itération de l'ordre.
D'un côté
Étant un opérateur, +
retourne le résultat de l'expression comme une nouvelle valeur. Étant un non-chaînage mutator
méthode, list.extend()
modifie la liste des sujets en place et ne renvoie rien.
Les tableaux
J'ai ajouté ceci en raison de la confusion qui l'Abel de la réponse ci-dessus peut entraîner par le mélange de la discussion, des listes, des séquences et des tableaux.
Arrays
ont été ajoutés à Python après des séquences et des listes, comme un moyen plus efficace de stocker des tableaux de l'ensemble des types de données. Ne pas confondre arrays
avec lists
. Ils ne sont pas les mêmes.
À partir de la matrice de docs:
Les tableaux sont des types de séquence et se comportent tout à fait comme les listes, sauf que le type des objets qui y sont conservés sont limitées. Le type est spécifié lors de la création d'un objet de temps à l'aide d'un code de type, qui est un caractère unique.