Оператор конкатенації +
- це оператор бінарної інфіксації, який при застосуванні до списків повертає новий список, що містить усі елементи кожного з двох його операндів. list.append()
Метод є mutator
на list
який приєднує свій єдиний object
аргумент (в вашому конкретному прикладі списку c
) до предмету list
. У вашому прикладі це призводить до c
додавання посилання на себе (звідси нескінченна рекурсія).
Альтернатива конкатенації "+"
list.extend()
Метод також метод мутатор , який приєднує його sequence
аргумент з предметом list
. Зокрема, він додає кожен елемент sequence
в порядку ітерації.
Відбій
Будучи оператором, +
повертає результат вираження як нове значення. Будучи нешиповим mutator
методом, list.extend()
змінює список предметів на місці і нічого не повертає.
Масиви
Я додав це через потенційну плутанину, яку може викликати відповідь Авеля, змішавши обговорення списків, послідовностей та масивів.
Arrays
були додані до Python після послідовностей і списків, як більш ефективний спосіб зберігання масивів цілісних типів даних. Не плутати arrays
з lists
. Вони не однакові.
З документів масиву :
Масиви - це типи послідовностей і ведуть себе дуже схоже на списки, за винятком того, що тип об'єктів, що зберігаються в них, обмежений. Тип задається під час створення об’єкта за допомогою коду типу, який є одним символом.