Python arrays provide an effective way to store multiple values of the same type in a single variable. In this tutorial, you learn what Python arrays are and how to use them, and the difference between Python lists and arrays. You also learn how to loop through an array, add and remove elements from an array, and how to combine the values stored in different arrays.
What Are Arrays in Python?
In Python, an array is an ordered collection of objects, all of the same type. These characteristics give arrays two main benefits. First, items in an array can be consistently identified by their index, or location, within the array. Second, items in an array are assured to be of the same type.
When creating an array in Python, you must indicate the type of data to be stored. The available types are indicated using codes, which consist of the following:
|Type Code||C Type||Python Type||Min. Bytes|
|‘q’||signed long long||int||8|
|‘Q’||unsigned long long||int||8|
Generally, though, for arrays containing numbers, you can focus on using just two of the available codes. Use the
i code for arrays containing integers. Use the
d code for arrays containing floating point numbers.
You can see an example showing how to use a code to initiate an array at the beginning of the
How to Use Arrays in Python
section of this guide.
Python Arrays vs. Lists
Often, people talking about arrays in Python are actually referring to
. While lists and arrays share some similarities in Python, they are two distinct types of collections.
The main difference between lists and arrays is that arrays constrain the object type it can store. Lists do not give you a way to limit the types of objects they contain. When using an array, you can be sure that it only contains the type that was specified upon creation.
A single Python list can simultaneously store integers, strings, and dictionaries. You can even add more elements of still other types to an existing list. By contrast, elements in a Python array can only be of one type. An array of integers can only contain integers and can only have other integers added to it.
Aside from this difference, however, you can generally navigate and modify arrays and lists in the same way. All of the operations detailed below for arrays, except for the
array() function itself, can be applied to lists as well.
How to Use Arrays in Python
The next few sections of this guide show you how to work with arrays in Python. Python has a wide variety of operations that can help you effectively make use of arrays. The sections below demonstrate the most common operations you might need to perform on arrays.
All of the examples to follow work off of a simple integer array created using the following Python code:
from array import * example_array = array("i", [2, 4, 6, 8])
is not loaded by default in Python. Instead, you need to import the module to start working with arrays.
Navigating Python Arrays
There are two ways you can interact with the contents of an array: either through Python’s indexing notation or through looping. Each of these is covered in the sections that follow.
Python Array Indices and Slices
The individual elements of an array can be accessed using indices. Array indices begin at
0. This means that the first element of an array is assigned an index of
0, and each subsequent element’s index progresses from there.
So, to access the first, second, and third elements of the
example_array, you use the following index notation:
You can also use negative numbers as indices. When you use a negative number as an index, Python counts backwards through the array, starting with
-1 as the last item in the array. The following example accesses the last value stored in
Python supports more advanced indexing through its slice notation. Slicing allows you to select a range of elements from an array.
The syntax for slice notation is the following:
start defines the first index of the range and
stop defines the last. The
step portion is optional. It is used to define how many elements to progress through while moving over the range
stop range. By default, the value of
The next example slices the range from index
0 through index
3. It progresses through this range using
2 steps at a time, meaning it skips every other item:
array('i', [2, 6])
Python’s slice notation is a powerful tool that can be used to perform many more complicated operations than demonstrated in this guide. To see more examples with in-depth explanations, check out our guides
How to Slice and Index Strings in Python
Python Lists and How to Use Them
. While these guides do not deal directly with Python arrays, the concepts apply equally well.
Looping Over Array Elements
Python arrays can be iterated over using
for loops. This provides a convenient way to take an action on each element in an array. Each loop yields a variable —
item in the example — corresponding to an element in the array:
for item in example_array: print(item)
The output returns the value of every element in the array.
2 4 6 8
enumerate function, you simultaneously loop through the elements and their indices:
for i, item in enumerate(test_array): print(str(i + 1) + ": " + str(item))
enumerate() function returns the count of the current iteration (stored in the
i variable) and the value of the current iteration (stored in the
item variable). Since array indexes begin at
0, the statement inside the loop adds
1 to the value of the
i counter to calculate the current index.
1: 2 2: 4 3: 6 4: 8
The output returns the index number of the current element in the array along with the value itself. The index and the value are separated by a
: as indicated in the
enumerate() function’s print statement.
Modifying Python Arrays
Python also provides ways of modifying the contents of an array, whether you need to add elements or remove them. There is even a way to combine multiple arrays. These next sections show you how to do all of these operations, working with the same example array as above.
Add an Element to an Array
Python arrays include two built-in methods for adding new elements. Which method you use depends on where within the array you want the new element to be added.
append() method to add a new element to the end of an array. The example below adds the integer
10 as a new element at the end of
example_array now also contains the
array('i', [2, 4, 6, 8, 10])
insert() method to add a new element to a specific position within an array. The method accepts two parameters; the first parameter is the index where the element should be inserted and the second is the element to insert into the array.
The example below uses the
insert() method to place the integer
example_array index position
example_array.insert(3, 7) print(example_array)
Printing the array confirms that it now contains integer
7 in index position
array('i', [2, 4, 6, 7, 8, 10])
Remove an Element from an Array
Python arrays include two built-in methods that you can use to remove elements from an array. The method you choose depends on whether you want to remove an element based on a given value or a given index.
remove() method takes as a parameter the value to remove from the array. In the following example, the
remove() method removes integer
example_array. This integer was added to the array in the previous section.
The output confirms that
example_array no longer contains
array('i', [2, 4, 6, 8, 10])
pop() method, on the other hand, can be used to remove elements based on index. This next example uses the
-1 index to remove the last element in the array, which was one of the elements added in the previous section:
10 array('i', [2, 4, 6, 8])
pop() method returns the value of the element that has been removed. This is why the output displays the integer
10. This is useful if, for example, you want to store the value of the removed element in a new variable.
Python arrays can be combined, or concatenated, using the
+ operator. There are other ways to go about combining arrays — using a loop, for instance. But the
+ operator provides the most convenient method if your goal is simply to join two or more arrays.
In the example below, the
example_array is combined with a new array,
another_array, and stored in
example_array = array("i", [2, 4, 6, 8]) another_array = array("i", [20, 40, 60, 80]) combined_array = example_array + another_array print(combined_array)
combined_array confirms that it now contains all the values stored in the two concatenated arrays.
array('i', [2, 4, 6, 8, 20, 40, 60, 80])
Python arrays are a collection type that can store multiple values. Each value can be accessed using index notation. While a Python array is similar to a list, it differs in that you can only store values of the same type in an array. Arrays also have built-in methods that help you add and remove elements. You can also combine two arrays using the
You may wish to consult the following resources for additional information
on this topic. While these are provided in the hope that they will be
useful, please note that we cannot vouch for the accuracy or timeliness of
externally hosted materials.