# Iterate over a list in Python

The List is equivalent to arrays in other languages, with the extra benefit of being dynamic in size.

In Python, the list is a type of container in Data Structures, which is used to store multiple data at the same time. Unlike Sets, lists in Python are ordered and have a definite count.

### Ways to Iterate over a List in Python

Let’s see all the different ways to iterate over a list in Python and the performance comparison between them.

### Iterate over a list using For loop

We can iterate over a list in Python by using a simple For loop.

## Python3

 `# Python3 code to iterate over a list` `list` `=` `[``1``, ``3``, ``5``, ``7``, ``9``]` ` `  `# Using for loop` `for` `i ``in` `list``:` `    ``print``(i)`

Output:

`13579`

Time complexity: O(n) – where n is the number of elements in the list.
Auxiliary space: O(1) – as we are not using any additional space.

### Iterate through a list using for loop and range()

In case we want to use the traditional for loop which iterates from number x to number y.

## Python3

 `# Python3 code to iterate over a list` `list` `=` `[``1``, ``3``, ``5``, ``7``, ``9``]` ` `  `# getting length of list` `length ``=` `len``(``list``)` ` `  `# Iterating the index` `# same as 'for i in range(len(list))'` `for` `i ``in` `range``(length):` `    ``print``(``list``[i])`

Output:

`13579`

Time complexity: O(n), where n is the length of the input list.
Auxiliary space: O(1), which is constant space

### Iterate through a List in Python using a while loop

We can also iterate over a Python list using a while loop.

## Python3

 `# Python3 code to iterate over a list` `list` `=` `[``1``, ``3``, ``5``, ``7``, ``9``]` ` `  `# Getting length of list` `i ``=` `0` ` `  `# Iterating using while loop` `while` `i < ``len``(``list``):` `    ``print``(``list``[i])` `    ``i ``+``=` `1`

Output:

`13579`

Time complexity: O(n) where n is the length of the list.
Auxiliary space: O(1) as only a constant amount of extra space is used for variables i and length.

### Iterate through a list using list comprehension

We can use list comprehension(possibly the most concrete way) to iterate over a list in Python.

## Python3

 `# Python3 code to iterate over a list` `list` `=` `[``1``, ``3``, ``5``, ``7``, ``9``]` ` `  `# Using list comprehension` `[``print``(i) ``for` `i ``in` `list``]`

Output:

`13579`

### Iterate through a List in Python using enumerate()

If we want to convert the list into an iterable list of tuples (or get the index based on a condition check, for example in linear search, you might need to save the index of minimum element), you can use the enumerate() function

## Python3

 `# Python3 code to iterate over a list` `list` `=` `[``1``, ``3``, ``5``, ``7``, ``9``]` ` `  `# Using enumerate() ` `for` `i, val ``in` `enumerate``(``list``):` `    ``print` `(i, ``","``,val)`

Output:

`0 , 11 , 32 , 53 , 74 , 9`

Note: Even method 2 can be used to find the index, but method 1 can’t (Unless an extra variable is incremented every iteration) and method 5 gives a concise representation of this indexing.

### Iterate over a list in Python Using NumPy

For very large n-dimensional lists (for example an image array), it is sometimes better to use an external library such as numpy

## Python3

 `import` `numpy as geek` ` `  `# creating an array using  ` `# arrange method` `a ``=` `geek.arange(``9``)` ` `  `# shape array with 3 rows  ` `# and 4 columns` `a ``=` `a.reshape(``3``, ``3``)` ` `  `# iterating an array` `for` `x ``in` `geek.nditer(a):` `    ``print``(x)`

Output:

`012345678`

We can use np. enumerate() to mimic the behavior of enumerating. The extra power of NumPy comes from the fact that we can even control the way to visit the elements (Fortran order rather than C order, say :)) but the one caveat is that the np.nditer treats the array as read-only by default, so one must pass extra flags such as op_flags=[‘readwrite’] for it to be able to modify elements.

### Iterate through a List in Python using the iter function and the next function

Here is an additional approach using the iter function and the next function:

## Python3

 `# Python3 code to iterate over a list` `list` `=` `[``1``, ``3``, ``5``, ``7``, ``9``]`   `# Create an iterator object using the iter function` `iterator ``=` `iter``(``list``)`   `# Use the next function to retrieve the elements of the iterator` `try``:` `    ``while` `True``:` `        ``element ``=` `next``(iterator)` `        ``print``(element)` `except` `StopIteration:` `    ``pass`

Output

```1
3
5
7
9

```

Time complexity: O(n), where n is the length of the list because it iterates through the elements of the list once and performs a constant number of operations on each element.
Auxiliary space: O(1), because it does not create any additional data structures to store intermediate results or the final result.

### Iterate over a list in Python using the map() function

Use the map() function to apply a function to each element of a list.

## Python3

 `# Define a function to print each element` `def` `print_element(element):` `    ``print``(element)`   `# Create a list` `my_list ``=` `[``1``, ``3``, ``5``, ``7``, ``9``]`   `# Use map() to apply the print_element() function to each element of the list` `result ``=` `map``(print_element, my_list)`   `# Since map() returns an iterator, we need to consume` `# the iterator in order to see the output` `for` `_ ``in` `result:` `    ``pass`

Output

```1
3
5
7
9

```

Time complexity: O(n), where n is the length of the list.
Auxiliary space: O(1)

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Previous
Next