append() and extend() in Python

The append() and extend() methods both add elements to a Python list, but they behave differently. append() adds its argument as a single element (even if it's a list), while extend() adds each element of an iterable individually.

append()

Adds the argument as one element to the end of the list. List length increases by exactly 1, regardless of the argument type.

days = ['Mon', 'Tue', 'Wed']
print("Original:", days)

# Append a single element
days.append('Thu')
print("After append('Thu'):", days)

# Append a list ? added as a nested list
days.append(['Fri', 'Sat'])
print("After append(['Fri','Sat']):", days)
print("Length:", len(days))
Original: ['Mon', 'Tue', 'Wed']
After append('Thu'): ['Mon', 'Tue', 'Wed', 'Thu']
After append(['Fri','Sat']): ['Mon', 'Tue', 'Wed', 'Thu', ['Fri', 'Sat']]
Length: 5

Notice that ['Fri', 'Sat'] is added as a single nested list at index 4, not as two separate elements.

extend()

Iterates over the argument and adds each element individually to the list. List length increases by the number of elements in the iterable.

days = ['Mon', 'Tue', 'Wed']
print("Original:", days)

# Extend with a list ? each element added separately
days.extend(['Thu', 'Fri'])
print("After extend(['Thu','Fri']):", days)
print("Length:", len(days))
Original: ['Mon', 'Tue', 'Wed']
After extend(['Thu','Fri']): ['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
Length: 5

String Behavior

Be careful when passing a string − extend() treats it as an iterable of characters ?

days = ['Mon', 'Tue']

# append adds string as one element
days.append("Wed")
print("append('Wed'):", days)

# extend iterates over characters
days.extend("Thu")
print("extend('Thu'):", days)
append('Wed'): ['Mon', 'Tue', 'Wed']
extend('Thu'): ['Mon', 'Tue', 'Wed', 'T', 'h', 'u']

extend("Thu") splits the string into individual characters 'T', 'h', 'u'. To add a string as a single element, always use append().

Comparison

Feature append() extend()
Argument Any single object Any iterable
List as argument Adds as nested list Adds each element individually
String as argument Adds as one element Adds each character separately
Length increase Always +1 +N (number of items in iterable)
Equivalent to a[len(a):] = [x] a[len(a):] = iterable

Conclusion

Use append() to add a single item (including a list as a nested element). Use extend() to merge another list's elements into the current list individually. Be cautious with extend() on strings − it splits them into characters.

Updated on: 2026-03-15T16:46:43+05:30

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements