Skip to content

A Comprehensive Guide to Python List Methods

Updated: at 04:23 AM

Lists are one of the most commonly used data structures in Python. They allow you to store multiple elements or items in a single variable. Lists are mutable, meaning you can modify them after creation.

Python provides many built-in methods that allow you to manipulate and access list elements conveniently. In this comprehensive guide, we will explore the most common Python list methods with examples.

Table of Contents

Open Table of Contents

Overview of Python Lists

A list in Python is defined by enclosing elements inside square brackets []. For example:

prime_numbers = [2, 3, 5, 7, 11]

This creates a list named prime_numbers containing integer elements.

Lists can hold elements of any data type, like strings, floats, booleans etc. And they can even hold a mix of different data types together in a single list.

mixed_list = [1, "Hello", 3.4, True]

Lists are indexed starting from 0. You can access individual elements using index notation with square brackets.

primes = [2, 3, 5, 7, 11]
print(primes[0]) # Prints 2
print(primes[3]) # Prints 7

Lists are mutable, meaning you can modify, add or remove elements from a list after creation.

numbers = [1, 2, 3]
numbers[0] = 5
print(numbers) # [5, 2, 3]

Basic operations like slicing, concatenation, copying, length etc. also work on lists just like strings.

Now that we have a basic understanding of Python lists, let’s explore some commonly used list methods.

Adding Elements to a List


The append() method adds a single element to the end of a list.

fruits = ['Apple', 'Banana', 'Orange']
print(fruits) # ['Apple', 'Banana', 'Orange', 'Mango']

append() modifies the original list in-place and returns None.

To add multiple elements, you can call append() in a loop.

nums = [1, 2, 3]
print(nums) # [1, 2, 3, 4, 5]


The insert() method inserts an element at a given index in the list.

vowels = ['A', 'E', 'I', 'O']
vowels.insert(1, 'U')
print(vowels) # ['A', 'U', 'E', 'I', 'O']

The first argument to insert() is the index, and second is the element to insert.


To append multiple elements to a list, use the extend() method.

nums = [1, 2, 3]
nums.extend([4, 5])
print(nums) # [1, 2, 3, 4, 5]

The argument to extend() should be an iterable object like list, tuple, set etc.

###Adding lists

You can also add two lists using the + operator.

list1 = [1, 2]
list2 = [3, 4]
total_list = list1 + list2
print(total_list) # [1, 2, 3, 4]

This creates a new list with elements from both lists concatenated.

Removing Elements from a List


The pop() method removes and returns the last element of a list.

colors = ['Red', 'Green', 'Blue']
popped = colors.pop()
print(popped) # Blue
print(colors) # ['Red', 'Green']

An index can be passed to pop() to remove and return the element at that index.

nums = [1, 3, 5]
first = nums.pop(0)
print(first) # 1
print(nums) # [3, 5]


To remove a specific element from a list, use remove().

vowels = ['A', 'E', 'I', 'O', 'U']
print(vowels) # ['A', 'I', 'O', 'U']

remove() only removes the first occurrence of the element. If the element is not present, it raises a ValueError.


You can use del keyword to remove an element at a specific index.

nums = [1, 2, 3, 4, 5]
del nums[2]
print(nums) # [1, 2, 4, 5]

del can also delete entire lists or slices from a list.


To empty a list, use the clear() method.

colors = ['Red', 'Blue', 'Green']
print(colors) # []

Sorting Elements in a List


The sort() method sorts the elements of a list in place.

fruits = ['Orange', 'Mango', 'Apple']
print(fruits) # ['Apple', 'Mango', 'Orange']

By default sort() sorts in ascending order. To sort descending, pass reverse=True.

nums = [3, 1, 2]
print(nums) # [3, 2, 1]


sorted() works similar to sort() but returns a new sorted list instead of modifying the original.

colors = ['Red', 'Blue', 'Green']
sorted_colors = sorted(colors)
print(sorted_colors) # ['Blue', 'Green', 'Red']
print(colors) # ['Red', 'Blue', 'Green'] (unchanged)


To reverse the elements of a list in place, use reverse().

letters = ['A', 'B', 'C', 'D']
print(letters) # ['D', 'C', 'B', 'A']

Custom Sorting

To sort lists of custom objects or using custom logic, pass a key function to sort() and sorted().

For example, to sort a list of strings by length:

words = ['Python', 'Programming', 'Code']
print(words) # ['Python', 'Code', 'Programming']

The key parameter specifies a function that extracts a comparison key from each element. Here we use the len() function to get the length of each string.

This allows you to implement any custom sorting logic easily.

Other Common List Methods

Some other useful Python list methods are:

Here are a few examples:

nums = [1, 2, 1, 3, 2, 1]
print(nums.count(1)) # 3

colors = ['red', 'green', 'blue']
print(colors.index('blue')) # 2

copy_list = colors.copy()
print(copy_list) # ['red', 'green', 'blue', 'white']
print(colors) # ['red', 'green', 'blue']

print(len(colors)) # 3

print(min([5, 2, 8, 3])) # 2
print(max([5, 2, 8, 3])) # 8

List Comprehensions

List comprehensions provide a concise way to create lists using a for loop in one line.

Basic syntax is:

[expression for item in list]

This creates a new list by applying expression to each item in the input list.

For example:

squares = [i**2 for i in range(10)]
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

List comprehensions can also contain conditions:

even_nums = [i for i in range(20) if i%2 == 0]
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

You can also nest multiple for loops and if statements inside list comprehensions.

Tips for Effective Usage of List Methods

Here are some tips for working with list methods effectively:


Python lists provide a versatile array-like data structure. List methods allow you to conveniently add, remove, sort, search and modify elements in a list.

List comprehensions offer a succinct syntax for list creation and manipulation. Mastering common Python list methods can help you write cleaner code and improve productivity when working with list data in Python.

Some key takeaways:

With this comprehensive guide, you should have a good understanding of how to work with Python lists and make use of their flexible capabilities in your own programs.