Hướng dẫn replace list python



Hàm replace() trong Python trả về một bản sao của chuỗi ban đầu sau khi đã thay thế các chuỗi con cũ bằng chuỗi con mới.


Cú pháp

Cú pháp của replace() trong Python:

str.replace(old, new[, max])

Các tham số:

  • old: Đây là chuỗi con cũ để được thay thế.

  • new: Đây là chuỗi con mới để thay thế cho chuỗi con cũ.

  • max: Nếu tham số tùy ý max này được cung cấp, thì chỉ có các sự xuất hiện đầu tiên được thay thế.


Ví dụ sau minh họa cách sử dụng của hàm replace() trong Python.

str1 = "Vi du ham replace() Python"
print (str1.replace("Python", "Python tren VietTuts.Vn"))
print (str1.replace("ham", "phuong thuc", 1))

Chạy chương trình Python trên sẽ cho kết quả:

Vi du ham replace() Python tren VietTuts.Vn
Vi du phuong thuc replace() Python



In this article, we are going to see how to replace the value in a List using Python. We can replace values in the list in serval ways. Below are the methods to replace values in the list.

  • Using list indexing
  • Using for loop
  • Using while loop
  • Using lambda function
  • Using list slicing

Method 1: Using List Indexing

We can access items of the list using indexing. This is the simplest and easiest method to replace values in a list in python. If we want to replace the first item of the list we can di using index 0. Here below, the index is an index of the item that we want to replace and the new_value is a value that should replace the old value in the list.

Syntax:  l[index]=new_value

Code:

Python3

l = [ 'Hardik','Rohit', 'Rahul', 'Virat', 'Pant']

l[0] = 'Shardul'

print(l)

Output:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']

Method 2: Using For Loop

We can use for loop to iterate over the list and replace values in the list. Suppose we want to replace ‘Hardik’ and ‘Pant’ from the list with ‘Shardul’ and ‘Ishan’. We first find values in the list using for loop and if condition and then replace it with the new value. 

Python3

l = ['Hardik', 'Rohit', 'Rahul', 'Virat', 'Pant']

for i in range(len(l)):

    if l[i] == 'Hardik':

        l[i] = 'Shardul'

    if l[i] == 'Pant':

        l[i] = 'Ishan'

print(l)

Output:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']

Method 3: Using While Loop

We can also use a while loop to replace values in the list. While loop does the same work as for loop. In the while loop first, we define a variable with value 0 and iterate over the list. If value matches to value that we want to replace then we replace it with the new value.

Python3

l = ['Hardik', 'Rohit', 'Rahul', 'Virat', 'Pant']

i = 0

while i < len(l):

    if l[i] == 'Hardik':

        l[i] = 'Shardul'

    if l[i] == 'Pant':

        l[i] = 'Ishan'

    i += 1

print(l)

Output:

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']

Method 4: Using Lambda Function

In this method, we use lambda and map function to replace the value in the list. map() is a built-in function in python to iterate over a list without using any loop statement. A lambda is an anonymous function in python that contains a single line expression. Here we gave one expression as a condition to replace value. Here we replace ‘Pant’ with ‘Ishan’ in the lambda function. Then using the list() function we convert the map object into the list.

Syntax: l=list(map(lambda x: x.replace(‘old_value’,’new_value’),l))

Python3

l = ['Hardik', 'Rohit', 'Rahul', 'Virat', 'Pant']

l = list(map(lambda x: x.replace('Pant', 'Ishan'), l))

print(l)

Output:

['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']

Method 5: Using List Slicing

Python allows us to do slicing inside a list. Slicing enables us to access some parts of the list. We can replace values inside the list using slicing. First, we find the index of variable that we want to replace and store it in variable ‘i’. Then, we replace that item with a new value using list slicing. Suppose we want to replace ‘Rahul’ with ‘Shikhar’ than we first find the index of ‘Rahul’ and then do list slicing and remove ‘Rahul’ and add ‘Shikhar’ in that place.

Syntax: l=l[:index]+[‘new_value’]+l[index+1:]

Python3

l = ['Hardik', 'Rohit', 'Rahul', 'Virat', 'Pant']

i = l.index('Rahul')

l = l[:i]+['Shikhar']+l[i+1:]

print(l)

Output:

['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']