Hướng dẫn how do you replace text in a list in python? - làm thế nào để bạn thay thế văn bản trong một danh sách trong python?

Trong trường hợp bạn đang tự hỏi về hiệu suất của các phương pháp khác nhau, đây là một số thời gian:

In [1]: words = [str(i) for i in range(10000)]

In [2]: %timeit replaced = [w.replace('1', '<1>') for w in words]
100 loops, best of 3: 2.98 ms per loop

In [3]: %timeit replaced = map(lambda x: str.replace(x, '1', '<1>'), words)
100 loops, best of 3: 5.09 ms per loop

In [4]: %timeit replaced = map(lambda x: x.replace('1', '<1>'), words)
100 loops, best of 3: 4.39 ms per loop

In [5]: import re

In [6]: r = re.compile('1')

In [7]: %timeit replaced = [r.sub('<1>', w) for w in words]
100 loops, best of 3: 6.15 ms per loop

Như bạn có thể thấy đối với các mẫu đơn giản như vậy, sự hiểu biết danh sách được chấp nhận là nhanh nhất, nhưng hãy nhìn vào những điều sau đây:

In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop

Điều này cho thấy rằng đối với các thay thế phức tạp hơn, một reg-exp được biên dịch sẵn (như trong 9-10) có thể nhanh hơn (nhiều). Nó thực sự phụ thuộc vào vấn đề của bạn và phần ngắn nhất của reg-exp.

Làm thế nào để bạn thay thế nhiều giá trị trong danh sách Python?

  • Một cách mà chúng ta có thể làm điều này là bằng cách sử dụng một vòng lặp. Một trong những thuộc tính chính của danh sách Python là chúng có thể chứa các giá trị trùng lặp. Vì điều này, chúng ta có thể lặp qua từng mục trong danh sách và kiểm tra giá trị của nó. Nếu giá trị là một giá trị chúng tôi muốn thay thế, thì chúng tôi thay thế nó.
  • Thay thế () làm gì trong Python?
  • Phương thức python String thay thế () Phương thức thay thế () thay thế một cụm từ được chỉ định bằng một cụm từ được chỉ định khác. Lưu ý: Tất cả các lần xuất hiện của cụm từ được chỉ định sẽ được thay thế, nếu không có gì khác được chỉ định.
  • Trong bài viết này, chúng ta sẽ xem cách thay thế giá trị trong danh sách bằng Python. Chúng ta có thể thay thế các giá trị trong danh sách theo cách phục vụ. Dưới đây là các phương pháp để thay thế các giá trị trong danh sách.
  • Sử dụng lập chỉ mục danh sách

Sử dụng cho vòng lặp

Sử dụng trong khi vòng lặp

Sử dụng chức năng Lambda l[index]=new_value

Code:

Python3

Sử dụng danh sách cắt

Phương pháp 1: Sử dụng lập chỉ mục danh sách

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

Output:

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

Chúng ta có thể truy cập các mục của danh sách bằng cách sử dụng lập chỉ mục. Đây là phương pháp đơn giản nhất và dễ nhất để thay thế các giá trị trong danh sách trong Python. Nếu chúng tôi muốn thay thế mục đầu tiên của danh sách, chúng tôi có thể sử dụng chỉ mục 0. Dưới đây, chỉ mục là một chỉ mục của mục mà chúng tôi muốn thay thế và new_value là một giá trị sẽ thay thế giá trị cũ trong danh sách.

Cú pháp: & nbsp; l [index] = new_value

Python3

l =

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
1
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
4
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
3__

l =

In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
36
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
38
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
40
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
41
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
9__

Phương pháp 5: Sử dụng Danh sách cắt

['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0509
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
5

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0=__
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
9
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4

['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0509
['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']
9

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

Output:

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

Phương pháp 3: Sử dụng trong khi vòng lặp

Chúng ta cũng có thể sử dụng một vòng lặp thời gian để thay thế các giá trị trong danh sách. Trong khi vòng lặp làm công việc tương tự như đối với Loop. Trong vòng lặp trước tiên, chúng tôi xác định một biến có giá trị 0 và lặp qua danh sách. Nếu giá trị khớp với giá trị mà chúng tôi muốn thay thế thì chúng tôi thay thế nó bằng giá trị mới.

Python3

l =

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
1
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
4
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
3__

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
2=
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
2

l 8 l 9

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
6=1

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0=__
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
1
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4

['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0509
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
5

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0=__
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
9
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4

['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
5
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0509
['Hardik', 'Rohit', 'Shikhar', 'Virat', 'Pant']
9

Phương pháp 3: Sử dụng trong khi vòng lặp

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

Output:

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

Chúng ta cũng có thể sử dụng một vòng lặp thời gian để thay thế các giá trị trong danh sách. Trong khi vòng lặp làm công việc tương tự như đối với Loop. Trong vòng lặp trước tiên, chúng tôi xác định một biến có giá trị 0 và lặp qua danh sách. Nếu giá trị khớp với giá trị mà chúng tôi muốn thay thế thì chúng tôi thay thế nó bằng giá trị mới.

l =

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
1
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
4
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
3__

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
2=
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
2
l=list(map(lambda x: x.replace(‘old_value’,’new_value’),l))

Python3

l =

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
1
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
4
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
3__

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
2=
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
2

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

Output:

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

l 8 l 9['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']6=1

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
9
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0=__
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
1
['Hardik', 'Rohit', 'Rahul', 'Virat', 'Ishan']
4

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
8
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
2
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
16=
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
18
l=l[:index]+[‘new_value’]+l[index+1:]

Python3

l =

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
0
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
1
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
4
In [8]: %timeit replaced = [w.replace('1', '<1>').replace('324', '<324>').replace('567', '<567>') for w in words]
100 loops, best of 3: 8.25 ms per loop

In [9]: r = re.compile('(1|324|567)')

In [10]: %timeit replaced = [r.sub('<\1>', w) for w in words]
100 loops, best of 3: 7.87 ms per loop
3__

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
2=
['Shardul', 'Rohit', 'Rahul', 'Virat', 'Pant']
2

l 8 l 9

['Shardul', 'Rohit', 'Rahul', 'Virat', 'Ishan']
6=1

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

Output:

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

Làm thế nào để bạn thay đổi một chuỗi trong một danh sách trong Python?

Sử dụng str ...
chuỗi = ["a", "ab", "aa", "c"].
new_strings = [].
cho chuỗi trong chuỗi:.
new_string = chuỗi. Thay thế ("A", "1") Sửa đổi chuỗi cũ ..
new_strings. Phụ lục (new_string) Thêm chuỗi mới vào danh sách ..
print(new_strings).

Làm thế nào để bạn thay thế một ký tự cụ thể trong danh sách Python?

Phương thức thay thế () giúp thay thế sự xuất hiện của ký tự cũ đã cho bằng ký tự hoặc chuỗi con mới.Phương thức chứa các tham số như cũ (một ký tự mà bạn muốn thay thế), mới (một ký tự mới bạn muốn thay thế) và đếm (một số lần bạn muốn thay thế ký tự). helps to replace the occurrence of the given old character with the new character or substring. The method contains the parameters like old(a character that you wish to replace), new(a new character you would like to replace with), and count(a number of times you want to replace the character).

Làm thế nào để bạn thay thế nhiều giá trị trong danh sách Python?

Một cách mà chúng ta có thể làm điều này là bằng cách sử dụng một vòng lặp.Một trong những thuộc tính chính của danh sách Python là chúng có thể chứa các giá trị trùng lặp.Vì điều này, chúng ta có thể lặp qua từng mục trong danh sách và kiểm tra giá trị của nó.Nếu giá trị là một giá trị chúng tôi muốn thay thế, thì chúng tôi thay thế nó.using a for loop. One of the key attributes of Python lists is that they can contain duplicate values. Because of this, we can loop over each item in the list and check its value. If the value is one we want to replace, then we replace it.

Thay thế () làm gì trong Python?

Phương thức python String thay thế () Phương thức thay thế () thay thế một cụm từ được chỉ định bằng một cụm từ được chỉ định khác.Lưu ý: Tất cả các lần xuất hiện của cụm từ được chỉ định sẽ được thay thế, nếu không có gì khác được chỉ định.replaces a specified phrase with another specified phrase. Note: All occurrences of the specified phrase will be replaced, if nothing else is specified.