O operador de concatenação +
é um operador de infixo binário que, quando aplicado a listas, retorna uma nova lista contendo todos os elementos de cada um de seus dois operandos. O list.append()
método é um mutator
no list
qual anexa seu único object
argumento (em seu exemplo específico, a lista c
) ao assunto list
. Em seu exemplo, isso resulta no c
acréscimo de uma referência a si mesmo (daí a recursão infinita).
Uma alternativa para concatenação '+'
O list.extend()
método também é um método modificador que concatena seu sequence
argumento com o assunto list
. Especificamente, ele anexa cada um dos elementos de sequence
na ordem de iteração.
Um aparte
Sendo um operador, +
retorna o resultado da expressão como um novo valor. Por ser um mutator
método sem encadeamento , list.extend()
modifica a lista de assuntos no local e não retorna nada.
Arrays
Eu adicionei isso devido à confusão potencial que a resposta de Abel acima pode causar ao misturar a discussão de listas, sequências e matrizes.
Arrays
foram adicionados ao Python após sequências e listas, como uma maneira mais eficiente de armazenar matrizes de tipos de dados integrais. Não confunda arrays
com lists
. Eles não são os mesmos.
Dos documentos do array :
Arrays são tipos de sequência e se comportam de maneira muito semelhante a listas, exceto que o tipo de objetos armazenados neles é restrito. O tipo é especificado no momento da criação do objeto usando um código de tipo, que é um único caractere.