How to Create and Use Lists (Arrays) in Python
A list
is a data type used in Python to store lists of items. Lists work in a similar way to array functions you would find in other programming languages like PHP or Java. They are useful for storing items so they can be sorted, removed, added, counted and accessed efficiently.
In this tutorial, we will learn how to use lists in Python with examples of how they can be used to work with data.
How to Create a List
To create a list
type []
(opening and closing square brackets). In the example below, we are creating a list that is assigned to the variable numbers
so that it can be used later in the program.
numbers = []
To create an array containing elements we can add the elements inside the square brackets separated by ,
(commas).
numbers = [1,2,3]
All the Python List Functions
For reference here are all the built-in Python functions that you can use to work with lists.
index()
append()
extend()
insert()
remove()
count()
pop()
reverse()
sort()
copy()
clear()
How to Add to a List in Python
New elements can be added to a list
VIA the append
function. Pass the value to add inside the ()
(parenthesis) of the append
function and it will be added to the end of the list.
numbers = [1,2,3]
numbers.append(4)
print(numbers)
[1, 2, 3, 4]
Unlike some other languages, you can append
mixed data types to an array such as numbers and strings.
numbers = [1,2,3]
numbers.append("hi")
print(numbers)
[1, 2, 3, 'hi']
Get a List Element Value
Values in a list
can be accessed by passing in []
(square brackets) containing the index of the element to get on the list
variable. Indexes in lists start at 0
so the highest index will be one less than the count of the elements in the list
.
numbers = [1,2,3]
first = numbers[0]
print(first)
1
Assign a New Value to a List Element
New values are set by getting the index of the element followed by =
(equals) and then the value to set.
numbers = [1,2,3]
numbers[0] = 5
print(numbers)
[5, 2, 3]
Multi-dimensional Lists
It is possible to add a list
into a list
, making a multidimensional list
. The example below uses the append
function to add a new element containing a list
.
numbers = [1, 2, 3]
numbers.append([2, 2])
print(numbers)
[1, 2, 3, [2, 2]]
To access an element inside of a multidimensional list, chain []
(square brackets) to the correct nesting level.
print(numbers[3][0])
2
Remove a List Element in Python
To remove the last element from the list
use the pop
function.
numbers = [1, 2, 3]
numbers.pop()
print(numbers)
[1, 2]
To remove a specific index, pass the index to remove inside of the ()
(parenthesis).
numbers.pop(0)
print(numbers)
[2, 3]
Slice List in Python
It is possible to slice a range of indexes from a list
in Python. This is done by passing in the range [ start : stop : step ]
to the list
variable and setting the value to []
(empty square brackets);
In the example below, we are removing indexes 0
to 1
.
numbers = [1, 2, 3]
numbers[0:2] = []
print(numbers)
[3]
Python List index() Function
The index
function is used to search for an element based on its value and return its index. It takes a required element parameter and two optional parameters for specifying on what index to start and end the search.
index( element_value, start_index, end_index )
Let's get the index of a
in the following example:
letters = ['a', 'b', 'c']
print(letters.index('a'))
0
note - index
only returns the index of the first element match.
Python List extend() Function
To add a list
of elements to the end of another list
use the extend
function. Anything iterable can be added using this method; a list
, tuple
, string
.etc.
letters = ['a', 'b', 'c']
letters2 = ['d', 'e', 'f']
letters.extend(letters2)
print(letters)
['a', 'b', 'c', 'd', 'e', 'f']
Python List insert() Function
The insert
list function can be used to add a new element to a list
at a specific index. To use it pass in the index as the first argument and the value as the second.
letters = ['a', 'b', 'c']
letters.insert(1, 'd')
print(letters)
['a', 'd', 'b', 'c']
Python List remove() Function
The remove
list function is used to search for an element by its value and remove it from the list
. It only removes the first match.
letters = ['a', 'b', 'c']
letters.remove('b')
print(letters)
['a', 'c']
If no matches are found a valueError
is thrown:
letters.remove('d')
ValueError Traceback (most recent call last)
<ipython-input-10-a3222769419b> in <module>
1 letters = ['a', 'b', 'c']
2
----> 3 letters.remove('d')
4
5 print(letters)
ValueError: list.remove(x): x not in list
Python List count() Function
The count
list function is used to get the total count of elements that have a specific value in a list
. If no matches are found 0
will be returned.
letters = ['a', 'b', 'c', 'b']
print(letters.count('b'))
2
Python List reverse() Function
The reverse
list function does exactly what it says in the tin. It reverses the order of a list
. This function takes no arguments.
letters = ['a', 'b', 'c', 'd']
letters.reverse()
print(letters)
['d', 'c', 'b', 'a']
Python List sort() Function
The sort
list function is used to sort a list
in ascending or descending order. To sort the list
in descending order use sort()
with no arguments:
letters = ['d', 'c', 'b', 'a']
letters.sort()
print(letters)
['a', 'b', 'c', 'd']
To sort a list
in descending order pass in reverse=True
as an argument:
letters = ['a', 'b', 'c', 'd']
letters.sort(reverse=True)
print(letters)
['d', 'c', 'b', 'a']
An additional key=
argument can be passed into sort
to sort the list
by a custom value. In the example below we are sorting a list
by the length of the element and setting the order to descending:
letters = ['aaa','aa', 'a', 'aaaa']
letters.sort(reverse=True, key=len)
print(letters)
['aaaa', 'aaa', 'aa', 'a']
Python List copy() Function
The copy function makes a copy of a list
. Using copy will mean the new list
will not reference the old one, unlike simply assigning the list
to a new variable.
letters = ['a', 'b', 'c']
new_letters = letters.copy()
letters.remove('a')
new_letters.append('d')
print(letters)
print(new_letters)
['b', 'c']
['a', 'b', 'c', 'd']
Python List clear() Function
The clear function is used to remove all elements from a list
. It leaves an empty list
and does not take any arguments.
letters = ['a', 'b', 'c']
letters.clear()
print(letters)
[]
Conclusion
You now know how to use lists in Python and how to work with the data in various ways, including with Pythons native list functions. There are quite a few list functions to remember, but they are logically named so they will come naturally to you once you have been working with them for a while.