Replace Multiple Elements in a List in Python

In Python, you can replace multiple elements in a list using slicing, list comprehension, or by iterating through the list with enumeration.


Examples

1. Replacing Multiple Elements Using Index Slicing

We can use slicing to replace multiple elements at specific index positions.

</>
Copy
# Creating an initial list
numbers = [10, 20, 30, 40, 50]

# Replacing elements at index positions 1 to 3
numbers[1:4] = [25, 35, 45]

# Printing the updated list
print("Updated List:", numbers)

In this example, we replaced the elements at index positions 1 to 3 (20, 30, 40) with new values (25, 35, 45) using slicing numbers[1:4]. The original values are removed and replaced with the new ones.

Output:

Updated List: [10, 25, 35, 45, 50]

2. Replacing Multiple Elements Based on Condition Using List Comprehension

List comprehension allows replacing specific elements in a list based on a condition.

</>
Copy
# Creating an initial list
numbers = [1, 2, 3, 4, 5, 6]

# Replacing even numbers with -1
numbers = [-1 if num % 2 == 0 else num for num in numbers]

# Printing the updated list
print("Updated List:", numbers)

Here, we iterate over numbers and check if an element is even using the condition num % 2 == 0. If true, we replace the element with -1; otherwise, we keep it unchanged.

Output:

Updated List: [1, -1, 3, -1, 5, -1]

3. Replacing Elements Using a Loop and Enumeration

Using enumerate(), we can find and replace specific elements dynamically within a loop.

</>
Copy
# Creating an initial list
fruits = ["apple", "banana", "cherry", "banana", "grape"]

# Replacing all occurrences of "banana" with "orange"
for index, fruit in enumerate(fruits):
    if fruit == "banana":
        fruits[index] = "orange"

# Printing the updated list
print("Updated List:", fruits)

Here, we use enumerate() to iterate through fruits, checking if an element is “banana”. If found, we replace it with “orange” by updating fruits[index].

Output:

Updated List: ['apple', 'orange', 'cherry', 'orange', 'grape']

4. Replacing Multiple Elements Using a Dictionary Mapping

We can use a dictionary to replace multiple elements based on predefined mappings.

</>
Copy
# Creating an initial list
grades = ["A", "B", "C", "D", "F"]

# Defining replacement mapping
replace_map = {"A": "Excellent", "B": "Good", "C": "Average"}

# Replacing elements using a mapping
grades = [replace_map.get(grade, grade) for grade in grades]

# Printing the updated list
print("Updated List:", grades)

Here, we use a dictionary replace_map to map grade values to their descriptions. The get() method retrieves the replacement if the grade exists in the dictionary; otherwise, it retains the original value.

Output:

Updated List: ['Excellent', 'Good', 'Average', 'D', 'F']

Conclusion

There are several ways to replace multiple elements in a Python list:

  1. Index Slicing: Replace elements at specific index positions.
  2. List Comprehension: Replace elements based on conditions.
  3. Loop with enumerate(): Modify elements dynamically within a loop.
  4. Dictionary Mapping: Replace multiple values using a predefined mapping.