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