list.append(1) is faster, because it doesn't create a temporary list object.

Answer from pts on Stack Overflow
🌐
W3Schools
w3schools.com › PYTHON › ref_list_append.asp
Python List append() Method
Python Examples Python Compiler ... Interview Q&A Python Bootcamp Python Training ... The append() method appends an element to the end of the list....
🌐
Mimo
mimo.org › glossary › python › append()
Python List append Method: Dynamic List Expansion | Learn Now
In Python, append() is a list method that adds a single element to the end of a list.
Discussions

python - list.append or list +=? - Stack Overflow
Which is more pythonic? list.append(1) or list += [1] More on stackoverflow.com
🌐 stackoverflow.com
Python append() vs. += operator on lists, why do these give different results? - Stack Overflow
Specifically, it appends each of the elements of the iterable in iteration order. Being an operator, + returns the result of the expression as a new value. Being a non-chaining mutator method, list.extend() modifies the subject list in-place and returns nothing. I've added this due to the potential confusion which Abel's answer above may cause by mixing the discussion of lists, sequences and arrays. Arrays were added to Python ... More on stackoverflow.com
🌐 stackoverflow.com
What's with the append method?
y.extend(x[:2]) ? More on reddit.com
🌐 r/learnpython
7
2
February 15, 2023
python - How to allow list append() method to return the new list - Stack Overflow
So, how can I allow append to return the new list? See also: Why do these list operations (methods) return None, rather than the resulting list? ... this is a weakness of the philosophy of python: it does not understand the value of chaining methods. More on stackoverflow.com
🌐 stackoverflow.com
🌐
GeeksforGeeks
geeksforgeeks.org › python › python-list-append-method
Python List append() Method - GeeksforGeeks
May 27, 2026 - Example: In this example, append() adds a new value to the end of the list.
🌐
Python documentation
docs.python.org › 3 › tutorial › datastructures.html
5. Data Structures — Python 3.14.6 documentation
The list methods make it very easy to use a list as a stack, where the last element added is the first element retrieved (“last-in, first-out”). To add an item to the top of the stack, use append(). To retrieve an item from the top of the ...
🌐
IONOS
ionos.com › digital guide › websites › web development › python append
How to use Python append to extend lists - IONOS
October 30, 2023 - As can be seen, you can use append() to add an element of any data type to a list in Python. You can pass the element directly as a parameter or create it as a variable be­fore­hand. However, it’s worth noting that at­tempt­ing to add multiple elements at once using append() will reveal its lim­i­ta­tions.
Find elsewhere
Top answer
1 of 7
183

Editor's note: This answer confuses lists with arrays as well as += with +. Despite that, the concepts are similar enough to still be useful.


To explain "why":

The + operation adds the array elements to the original array. The array.append operation inserts the array (or any object) into the end of the original array, which results in a reference to self in that spot (hence the infinite recursion in your case with lists, though with arrays, you'd receive a type error).

The difference here is that the + operation acts specific when you add an array (it's overloaded like others, see this chapter on sequences) by concatenating the element. The append-method however does literally what you ask: append the object on the right-hand side that you give it (the array or any other object), instead of taking its elements.

An alternative

Use extend() if you want to use a function that acts similar to the + operator (as others have shown here as well). It's not wise to do the opposite: to try to mimic append with the + operator for lists (see my earlier link on why). More on lists below:

Lists

[edit] Several commenters have suggested that the question is about lists and not about arrays. The question has changed, though I should've included this earlier.

Most of the above about arrays also applies to lists:

  • The + operator concatenates two lists together. The operator will return a new list object.
  • List.append does not append one list with another, but appends a single object (which here is a list) at the end of your current list. Adding c to itself, therefore, leads to infinite recursion.
  • As with arrays, you can use List.extend to add extend a list with another list (or iterable). This will change your current list in situ, as opposed to +, which returns a new list.
2 of 7
34

The concatenation operator + is a binary infix operator which, when applied to lists, returns a new list containing all the elements of each of its two operands. The list.append() method is a mutator on list which appends its single object argument (in your specific example the list c) to the subject list. In your example this results in c appending a reference to itself (hence the infinite recursion).

An alternative to '+' concatenation

The list.extend() method is also a mutator method which concatenates its iterable argument with the subject list. Specifically, it appends each of the elements of the iterable in iteration order.

An aside

Being an operator, + returns the result of the expression as a new value. Being a non-chaining mutator method, list.extend() modifies the subject list in-place and returns nothing.

Arrays

I've added this due to the potential confusion which Abel's answer above may cause by mixing the discussion of lists, sequences and arrays.

Arrays were added to Python after sequences and lists, as a more efficient way of storing arrays of integral data types. Do not confuse arrays with lists. They are not the same.

From the array docs:

Arrays are sequence types and behave very much like lists, except that the type of objects stored in them is constrained. The type is specified at object creation time by using a type code, which is a single character.

🌐
Analytics Vidhya
analyticsvidhya.com › home › list append() method in python explained with examples
List append() Method in Python Explained, List collection type
May 30, 2025 - Some Python libraries include: ... NLTK for Natural Language Processing, etc. In this example, we see a list of fruits where we add a new fruit, increasing the list’s length by one. It’s important to note that this method does not return any value. # Created a list fruits = ["grapes", "banana", "cherry", "orange"] # Add a new element to the list of the above fruits fruits.append("apple") # Print the updated list print(fruits)
🌐
freeCodeCamp
freecodecamp.org › news › append-in-python-how-to-append-to-a-list-or-an-array
Append in Python – How to Append to a List or an Array
January 7, 2022 - To sum up, the .append() method is used for adding an item to the end of an existing list, without creating a new list. When it is used for adding a list to another list, it creates a list within a list. If you want to learn more about Python, check out freeCodeCamp's Python Certification.
🌐
Built In
builtin.com › software-engineering-perspectives › append-python
Python List Append() - How to Append Lists in Python | Built In
The append() method takes a single item as an input parameter and adds that to the end of the list. Let’s look at how to add a new numeric item to a list: # list of strings string_list = [‘Built In’,‘Python’,‘Machine Learning’,‘Data ...
🌐
Programiz
programiz.com › python-programming › methods › list › append
Python List append()
The append() method adds an item to the end of the list. In this tutorial, we will learn about the Python append() method in detail with the help of examples.
🌐
freeCodeCamp
freecodecamp.org › news › python-list-append-how-to-append-to-a-list-in-python
Python List.append() – How to Append to a List in Python
July 13, 2022 - And you can access each item using its index position in the list, starting from 0 (as lists are zero-indexed in Python): print(items[0], items[1], items[2]) # banana apple orange · We've briefly seen what lists are. So how do you update a list with new values? Using the List.append() method.
🌐
Tutorialspoint
tutorialspoint.com › python › list_append.htm
Python List append() Method
The Python List append() method is used to add new objects to a list. This method accepts an object as an argument and inserts it at the end of the existing list. The object argument can be of any type, as a Python list can hold multiple data type
🌐
Hyperskill
hyperskill.org › university › python › append-method-in-python
Append Method in Python
August 2, 2024 - This course is dedicated to core Python skills that will give you a solid base and allow you to pursue any further direction, be it Backend Development or Data Science. ... The append method in Python is used to add elements to a list. It modifies the list by appending new elements at the end.
🌐
Note.nkmk.me
note.nkmk.me › home › python
Add an Item to a List in Python: append, extend, insert | note.nkmk.me
April 17, 2025 - In Python, you can add a single item (element) to a list using append() and insert(). You can combine lists using extend(), +, +=, and slicing. Add an item to a list: append() Combine lists: extend(), ...