← Back to Blog
Thursday, March 16 2023

Master Python Lists – How to Create, Append, Reverse, Sort, Slice a list in Python

Explained with Code – How to create, update, append, filter, remove, pop and other list methods for Python lists.

Introduction to Python lists

Python is a popular programming language used in a wide range of applications, from web development to data analysis. One of the most powerful features of Python is its ability to work with lists. Lists are a collection of ordered elements, which can be of different data types such as integer, string, and even other lists.

In this article, we will explore everything you need to know about Python lists, including list comprehension. But, first, lets clearly conceptualize what a list really is and the best way to do that is by explaining with a simple analogy.

Introduction to Python lists – for dummies

A list is like a container that can hold a bunch of different things. For example, let’s say you’re going to the store and you need to buy some fruits. You could write a list of all the fruits you need to buy, like this:

  • Apples
  • Bananas
  • Oranges
  • Grapes

This is just like a Python list! In Python, you can create a list of things like this:

my_list = ['Apples', 'Bananas', 'Oranges', 'Grapes']
Python

Just like your shopping list, a Python list can hold different kinds of things, like numbers, words, or even other lists. You can also add things to a list or take things away from a list.

For example, if you remember you need to buy some pears, you can add them to your shopping list. Similarly, you can add things to a Python list like this:

my_list.append('Pears')
Python

Or, if you decide you don’t need to buy oranges after all, you can take them off your shopping list. Similarly, you can remove things from a Python list like this:

my_list.remove('Oranges')
Python

So, a list is just like a container that can hold a bunch of different things, and you can add things to it or take things away from it as you need to.

And, to put it in terms of Python, a list is a collection of ordered elements, which can be of different data types such as integers, strings, and even other lists.

Creating list in python – with square brackets

Creating Python lists is simple. You can create an empty list or a list with elements. To create an empty list, use the following syntax:

my_list = []
Python

To create a list with elements, use the following syntax:

my_list = [1, 2, 3, 'hello', 'world']
Python

List Operations

Lists in Python are `mutable`, which means you can update, concatenate, and replicate them. To update a list element, simply assign a new value to the index:

my_list[0] = 4
Python

To concatenate two lists, use the `+` operator:

my_list1 = [1, 2, 3] 
my_list2 = [4, 5, 6] 
my_list3 = my_list1 + my_list2
Python

To replicate a list, use the `*` operator:

my_list = [1, 2, 3] 
my_list_replicated = my_list * 3
Python

You can also delete list elements using the del statement:

my_list = [1, 2, 3, 4, 5] 
del my_list[0]
Python

How to get the Length of List in Python

You can find the length of a list using the built-in `len()` function. The len() function on list returns the number of elements in the list. For example, if my_list is a list with five elements, `len(my_list)` will return 5.

Access Python List Elements

You can access list elements using their index. Python uses zero-based indexing, which means the first element has an index of 0. You can also slice a list to get a subset of its elements. Here is a simple example of how to access an element inside a list in python using square brackets.

my_list = [1, 2, 3, 'hello', 'world']
my_list[0]

// output
1
Python

Negative indexing

Negative indexing is a feature of Python lists that allows you to access elements from the end of the list using negative numbers. In Python, the last element of a list has an index of -1, the second-to-last element has an index of -2, and so on. For example, to access the last element of a list, you can use the following syntax:

my_list = [1, 2, 3, 4, 5]
last_element = my_list[-1] # last_element is 5
Python

Similarly, to access the second-to-last element, you can use the following syntax:

second_to_last = my_list[-2] # second_to_last is 4
Python

Negative indexing can be useful in cases where you need to access elements from the end of a list without knowing the length of the list.

How to Change the Value of Items in a Python List

You can update the value of an item in a list by accessing it using its index number and using the assignment operator to assign a new value to it. Here’s an example:

my_list = [1, 2, 3, 4, 5]
my_list[2] = 6
print(my_list)  # Output: [1, 2, 6, 4, 5]
Python

How to Check if an Item Exists in the Python List

You can check if an item exists in a list by using the `in` operator or the `not in` operator. Here’s an example:

my_list = [1, 2, 3, 4, 5] 
if 3 in my_list: 
	print("3 is in the list") 
if 6 not in my_list: 
	print("6 is not in the list")
Python

It’s important to note that when using the in and not in operators, Python searches through the list in a linear fashion to determine whether the item exists in the list or not. Therefore, the time complexity of these operations is O(n), where n is the number of elements in the list. If you need to perform many searches on a large list, it may be more efficient to use a different data structure, such as a set or a dictionary.

List methods to add, remove, sort items in a list in Python

Python provides a variety of list built in functions called “methods” that you can use to manipulate python lists. Some of the most commonly used list methods include:

  • append(): Adds an element to the end of a list
  • insert(): Adds an element to a specific index in the list
  • remove(): Removes the first occurrence of an element from a list
  • pop(): Removes and returns an element from a specific index in the list
  • filter(): Filters an array based on a matching condition
  • index(): Returns the index of the first occurrence of an element in the list
  • count(): Returns the number of times an element appears in the list
  • sort(): Sorts the elements in the list in ascending order
  • reverse(): Reverses the order of the elements in the list

Let’s go over each one of them in a bit more detail with examples.

How to add Add Elements to a Python List

Adding items to a list is fairly straightforward and depends on whether you want to add the item at the end of the list or at a specific position inside the list in python.

1.Add items to a list in Python using the method append

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

my_list = [1, 2, 3] 
my_list.append(4) 
# my_list is now [1, 2, 3, 4]
Python

2.Add items to a list in Python using the insert() method

insert(): The insert method inserts an element at a specific position or index in the list.

my_list = [1, 2, 3] 
my_list.insert(1, 'hello') 
# my_list is now [1, 'hello', 2, 3]
Python

In this example, we inserted the word “hello” at position 1 (which translates to the second element of the list)

3.How to add a append a list to a list in Python using extend() method

The extend() method in Python is used to add the elements of an iterable object (e.g., list, tuple, string) to the end of a list. The extend() method modifies the original list in place and does not create a new list. Here’s an example:

my_list = [1, 2, 3]
my_list.extend([4, 5, 6])
print(my_list)  # Output: [1, 2, 3, 4, 5, 6]
Python

It’s important to note that the extend() method only adds the elements of the iterable object to the end of the list. If you pass a single value to the extend() method, it will raise a TypeError. To add a single value to the end of a list, you can use the append() method instead.

How to remove or delete an item from a list in Python

Removing items from a list is a common task in Python programming, and there are several ways to accomplish it. Here are the three most commonly used ways:

  1. `del` statement
  2. `remove()` method
  3. `pop()` method

1.Remove an item from a list using the `del` statement

The del statement can be used to remove an item from a list by specifying its index number. For example:

my_list = [1, 2, 3, 4] 
del my_list[2] # removes the element at second index (i.e., third item) 
# my_list is now [1, 2, 4]
Python

When to use the `del` statement to remove an item from a list?

The del statement is useful when you know the index of the item you want to remove and don’t need to keep a reference to the specified item being removed.

2.Remove an item from a list using the `remove` method

The remove() method removes the first occurrence of an item with a specific value from a list. For example:

my_list = [1, 2, 3, 2] 
my_list.remove(2) # removes the first occurrence of 2 from the list 
# my_list is now [1, 3, 2]
Python

When to use the `remove()` method to remove an item from a list?

The remove() method is useful when you want to remove an item with a specific value from a list and don’t care about its index.

3.Remove an item from a list using the `pop()` method

The pop() method removes and returns an item from a list at a specific index. For example:

my_list = [1, 2, 3] 
removed_item = my_list.pop(1) # removes and returns the item at index 1 (i.e., 2) 
# removed_item is 2
# my_list is now [1, 3]
Python

When to use the `pop()` method to remove an item from a list?

The pop() method is useful when you want to remove an item at an index from a list and also need to keep a reference to the removed item.

The method you choose for removing items from a list depends on what you already know about your data structures list and what you need to accomplish.

How to filter lists in Python using the filter() function

The filter() function in Python is used to filter elements from an iterable object (e.g., list, tuple) based on a given function.

The filter() function returns a filter object, which is an iterator that contains the elements from the iterable object that satisfy the condition specified in the function. Here’s an example:

my_list = [1, 2, 3, 4, 5]
filtered_list = filter(lambda x: x % 2 == 0, my_list)
print(list(filtered_list))  # Output: [2, 4]
Python

In this example, we first create a list called my_list that contains the integers 1 through 5. We then call the filter() function on my_list and pass it a lambda function that checks if each element is even. The filter() function returns a filter object that contains the even elements from my_list. Finally, we convert the filter object to a list using the list() function and print the resulting list.

How to Sort lists in Python

The sort() method is used to sort the elements of a list in ascending order. For example, let’s say we have a list of numbers that we want to sort:

my_list = [3, 1, 4, 1, 5, 9, 2]
my_list.sort()
# my_list is now [1, 1, 2, 3, 4, 5, 9]
Python

The sort() method works by comparing the elements of the list to each other and rearranging them in ascending order.

What happens if the list being sorted has multiple elements of different data type?

If the elements of the list are of different data types, the sort() method will raise a TypeError. Therefore, it is best to ensure that all the elements of the list are of the same data type before sorting.

What happens if the list being sorted has another list inside it?

If the list contains another list as an element (ie. it is a nested list), the sort() method will sort the Python list of lists based on the comparison of their elements as well. For example:

my_list = [[1, 2], [8, 7], [4, 5]]
my_list.sort()
# my_list is now [[1, 2], [4, 5], [8, 7]]
Python

In this case, the initial list `my_list` is sorted based on the first element of each list inside it. Note that the second and third elements of the original list (i.e., [8, 7] and [4, 5]) are swapped in the sorted list because 4 is less than 8.

How to reverse a list in python

Use the reverse() method to reverse python lists

The reverse() method in Python that takes a whole list as an input and reverses the order of the items in a list.

Here’s an example:

my_list = [1, 2, 3, 4, 5] 
my_list.reverse() 
print(my_list) 
# Output: [5, 4, 3, 2, 1]
Python

The time complexity of the reverse() method is O(n), where n is the number of elements in the list. This is because the reverse() method needs to iterate through the entire list and swap the elements to reverse the order of the list.

Keep in mind though that the reverse function does not return a new list, but instead modifies the input list variable.

Use the slicing() method to reverse Python lists

If you want to create a reversed copy of a list without modifying the original list, you can use slicing with a step of -1. Here’s an example:

my_list = [1, 2, 3, 4, 5]
reversed_list = my_list[::-1]
print(reversed_list)  # Output: [5, 4, 3, 2, 1]
Python

In this example, we create a new list called reversed_list by slicing my_list with a step of -1, which creates a new list with the elements of my_list in reverse order.

FAQ

Are lists in Python mutable?

Yes. Lists in Python are mutable and can be updated.

myList = [1, 2, 3]
myList[0] = 10
print(myList)

are lists in Python ordered?

Yes, the way a list is ordered in Python matters. For example, [1, 2, 3] and [3, 2, 1] are different lists.

are lists in Python a built in data type?

Yes, lists are a built-in data type in Python and does not require the use of any libraries.

are lists in Python dynamic?

Yes, lists in Python are dynamic and can be easily updated and expanded.

are lists in Python immutable?

No, lists in Python are NOT immutable. They can be updated or modified.

what are 2d lists in Python?

2d lists are Python lists containing other lists, creating a grid-like structure.

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

why are lists important in Python?

Lists provide a versatile, ordered, and mutable data structure for storing and manipulating collections of items.

is lists mutable in Python?

Yes (Same as the first question)

what is empty list in Python?

An empty list in Python is a list with no elements. For example, this is an empty list: empty_list = []

are lists in Python arrays?

No, but they can be used like arrays. For true arrays, use the numpy library.

are lists in Python linked lists?

No, they are dynamic arrays. Linked lists can be implemented using custom classes.

are lists in Python passed by reference?

Yes lists in Python are passed by a reference to the item. For example, in this code, we are editing the first element of the list to 99.

def modify_list(lst):
lst[0] = 99
myList = [1, 2, 3]
modify_list(myList)
print(myList) # Output: [99, 2, 3]

is Python numpy better than lists?

For numerical operations and multidimensional arrays, numpy is more efficient and provides more functionality.

does Python have linked lists?

Python does not have built-in linked lists, but they can be implemented using custom classes.

what are linked lists in Python?

A data structure where elements are stored as nodes, with each node pointing to the next node in the sequence.

can you sum lists in Python?

Yes, you can sum the elements of a list in Python using the built-in sum() function. However, this is applicable only if the list contains numeric elements.

How to sum two lists element-wise?

you can use a list comprehension or the zip() function:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = [a + b for a, b in zip(list1, list2)]
print(result) # Output: [5, 7, 9]

How to subtract lists in Python?

Yes, you need to use list comprehensions or loops or the zip function. Here are the examples:
Using list comprehension/loops:
list1 = [1, 2, 3]
list2 = [2, 3, 4]
result = [x for x in list1 if x not in list2]
print(result)

Using zip() function:
list1 = [1, 2, 3]
list2 = [4, 5, 6]
result = [a - b for a, b in zip(list1, list2)]
print(result) # Output: [-3, -3, -3]

can you multiply lists in Python?

In Python, you cannot directly multiply lists. However, you can multiply a list by an integer, which will result in the list being repeated that number of times:

myList = [1, 2, 3] result = myList * 3 print(result) # Output: [1, 2, 3, 1, 2, 3, 1, 2, 3]

If you want to perform element-wise multiplication on two lists with numeric elements and the same length, you can use a list comprehension or the zip() function:

list1 = [1, 2, 3] list2 = [4, 5, 6] result = [a * b for a, b in zip(list1, list2)] print(result) # Output: [4, 10, 18]

If you need more advanced operations like matrix multiplication, you should use the numpy library, which provides efficient and convenient operations on arrays:

import numpy as np array1 = np.array([1, 2, 3]) array2 = np.array([4, 5, 6]) result = array1 * array2 print(result) # Output: array([ 4, 10, 18])

can you split lists in Python?

You can split a string into a list using the split() method.

myString = "hello world"
myList = myString.split() # Output: ['hello', 'world']

can you plot lists in Python?

Yes, you can plot lists in Python using a library like matplotlib or using no-code DEX in Noteable.

how reverse list in Python?

You can reverse a list in Python using the reverse() method as shown in this example:

myList = [1, 2, 3]
myList.reverse()
reversed_list = myList[::-1] # Creates a new reversed list

how append list in Python?

You can append to a list in Python using the append() method. This example appends 4 to a list [1,2,3].

myList = [1, 2, 3]
myList.append(4) # Output: [1, 2, 3, 4]

what is traversing list in python?

Traversing is iterating over each element in a list. Below is a simple example to traverse the list and print each element:

myList = [1, 2, 3]
for item in myList:
print(item)

when to use lists in python?

You should use lists in Python when you need an ordered collection of items that are editable or mutable and can be of different data types.

Lists maintain the order of elements, can handle different data types and are editable. This makes them suitable for situations where order of variety of elements matters.

myList = ['apple', 'banana', 'cherry']

Final Thoughts

Python lists are an important data structure in data science, as they can be used to store and manipulate datasets. Data scientists often work with large datasets, and lists can be used to perform operations such as filtering, sorting, and grouping data. Lists can also be used to store data in a way that makes it easy to perform statistical analysis and visualization. By understanding how to work with Python lists, data scientists can use this powerful data structure to efficiently manage and analyze their data, leading to insights and discoveries that can drive business decisions and scientific advancements.