How to Modify a List While Iterating in Python (original) (raw)

Last Updated : 28 Nov, 2024

Modifying a list while iterating can be tricky but there are several ways to do it safely. One simple way to modify a list while iterating is by using a for loop with the index of each item. This allows us to change specific items at certain positions.

Python `

a = [1, 2, 3, 4]

for i in range(len(a)): if a[i] % 2 == 0: a[i] = a[i] * 2

print(a)

`

Let's look into other methods to Modify a List While Iterating in Python are:

Table of Content

Using List Comprehension

Create a new list based on the modifications and replace the original list if necessary. This avoids directly modifying the list during iteration.

Python `

a = [1, 2, 3, 4]

a = [x * 2 if x % 2 == 0 else x for x in a]

print(a)

`

Using While Loop

In some cases, we might want more control over the iteration process. Using a while loop allows us to modify the list as we go, but we need to be careful to avoid skipping elements.

Python `

a = [1, 2, 3, 4] i = 0

while i < len(a): if a[i] % 2 == 0: a[i] = a[i] * 2 i += 1

print(a)

`

Iterating Over a Copy

Iterate over a copy of the list ****(list.copy())** to avoid modifying the list during iteration.

Python `

a = [1, 2, 3, 4]

for item in a.copy(): if item % 2 != 0: a.remove(item)

print(a)

`

Similar Reads