Hướng dẫn replace substring in list python - thay thế chuỗi con trong danh sách python

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luận
    The replace method can be coupled with the list comprehension technique to achieve this particular task. List comprehension performs the task of iterating through the list and replace method replaces the section of substring with another.

    Trong khi làm việc với các chuỗi, một trong những ứng dụng được sử dụng nhiều nhất là thay thế một phần của chuỗi bằng một ứng dụng khác. Vì bản thân chuỗi là bất biến, kiến ​​thức về tiện ích này là khá hữu ích. Ở đây, việc thay thế một chuỗi con trong danh sách chuỗi được thực hiện. Hãy để thảo luận về những cách nhất định trong đó điều này có thể được thực hiện.

    Phương pháp số 1: Sử dụng danh sách hiểu +

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    8 Phương thức thay thế có thể được ghép nối với kỹ thuật hiểu danh sách để đạt được nhiệm vụ cụ thể này. Danh sách hiểu thực hiện nhiệm vụ lặp lại thông qua danh sách và thay thế phương thức thay thế phần chuỗi con bằng một nhiệm vụ khác.

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    9
    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
    
    0
    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
    
    1
    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
    
    2223
    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
    
    4
    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
    
    3
    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
    
    6
    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
    
    3
    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
    
    8
    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
    
    3
    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
    
    0
    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
    
    3
    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
    
    2____33

    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
    
    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
    
    6
    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
    
    7
    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
    
    8
    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

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    

    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
    
    5
    [variable_name for variable_name in iterable if condition]
    
    3
    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
    
    7
    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
    
    8
    [variable_name for variable_name in iterable if condition]
    
    6

    The combination of these functions can also be used to perform this particular task. The map and lambda help to perform the task same as list comprehension and replace method is used to perform the replace functionality. But this method is poor when it comes to performance than method above.

    Trong khi làm việc với các chuỗi, một trong những ứng dụng được sử dụng nhiều nhất là thay thế một phần của chuỗi bằng một ứng dụng khác. Vì bản thân chuỗi là bất biến, kiến ​​thức về tiện ích này là khá hữu ích. Ở đây, việc thay thế một chuỗi con trong danh sách chuỗi được thực hiện. Hãy để thảo luận về những cách nhất định trong đó điều này có thể được thực hiện.

    Phương pháp số 1: Sử dụng danh sách hiểu +

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    8 Phương thức thay thế có thể được ghép nối với kỹ thuật hiểu danh sách để đạt được nhiệm vụ cụ thể này. Danh sách hiểu thực hiện nhiệm vụ lặp lại thông qua danh sách và thay thế phương thức thay thế phần chuỗi con bằng một nhiệm vụ khác.

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    9
    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
    
    0
    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
    
    1
    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
    
    2223
    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
    
    4
    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
    
    3
    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
    
    6
    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
    
    3
    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
    
    8
    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
    
    3
    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
    
    0
    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
    
    3
    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
    
    2____33

    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
    
    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
    
    6
    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
    
    7
    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
    
    8
    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

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    


    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 để thay thế phức tạp hơn, một reg-exp được biên dịch sẵn (như trong

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    00) 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.

    Trong Python, bạn có thể tạo một danh sách mới từ danh sách các chuỗi bằng cách trích xuất, thay thế hoặc chuyển đổi các yếu tố đáp ứng các điều kiện nhất định với sự hiểu biết danh sách.

    Bài viết này giải thích ngắn gọn về sự hiểu biết danh sách và sau đó mô tả những điều sau đây với mã mẫu.

    • Trích xuất các chuỗi chứa hoặc không chứa một chuỗi cụ thể
    • Thay thế một chuỗi cụ thể trong danh sách
    • Trích xuất các chuỗi bắt đầu hoặc không bắt đầu bằng một chuỗi cụ thể
    • Trích xuất các chuỗi kết thúc hoặc không kết thúc bằng một chuỗi cụ thể
    • Trích xuất chuỗi bằng chữ hoa hoặc chữ thường
    • Chuyển đổi chữ hoa và chữ thường
    • Trích xuất chuỗi bằng chữ cái hoặc số
    • Nhiều điều kiện
    • Biểu thức chính quy (Regex)

    Xem bài viết sau đây để biết thêm thông tin về cách trích xuất và thay thế các chuỗi.

    • Trích xuất một chuỗi con từ một chuỗi trong python (vị trí, regex)
    • Thay thế các chuỗi trong python (thay thế, dịch, re.sub, re.sub)

    Danh sách toàn diện

    Để tạo một danh sách mới từ danh sách, bạn có thể sử dụng toàn bộ danh sách, đơn giản hơn để viết so với vòng lặp

    [expression for variable_name in iterable if condition]
    
    7.

    • Liệt kê sự hiểu biết trong Python

    [expression for variable_name in iterable if condition]
    

    Nếu bạn chỉ muốn trích xuất các yếu tố đáp ứng

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    02, bạn không cần phải xử lý chúng với
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    03; Chỉ cần sử dụng
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    04.

    [variable_name for variable_name in iterable if condition]
    

    Nếu bạn thay đổi

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    05 thành
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    06, bạn có thể trích xuất các yếu tố không thỏa mãn
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    02.

    Để biết thêm thông tin về trích xuất, thay thế và chuyển đổi các yếu tố danh sách bằng cách sử dụng danh sách toàn diện, vui lòng tham khảo bài viết sau.

    • Trích xuất, thay thế, chuyển đổi các yếu tố của một danh sách trong Python

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    08 Trả về
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    09 nếu
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    10 chứa
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    11. Sử dụng
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    12 để phủ định.

    • trong toán tử trong Python (cho danh sách, chuỗi, từ điển, v.v.)

    l = ['oneXXXaaa', 'twoXXXbbb', 'three999aaa', '000111222']
    
    l_in = [s for s in l if 'XXX' in s]
    print(l_in)
    # ['oneXXXaaa', 'twoXXXbbb']
    
    l_in_not = [s for s in l if 'XXX' not in s]
    print(l_in_not)
    # ['three999aaa', '000111222']
    

    Thay thế một chuỗi cụ thể trong danh sách

    Trích xuất các chuỗi bắt đầu hoặc không bắt đầu bằng một chuỗi cụ thể

    Trích xuất các chuỗi kết thúc hoặc không kết thúc bằng một chuỗi cụ thể

    l_replace = [s.replace('XXX', 'ZZZ') for s in l]
    print(l_replace)
    # ['oneZZZaaa', 'twoZZZbbb', 'three999aaa', '000111222']
    

    Trích xuất chuỗi bằng chữ hoa hoặc chữ thường

    • Chuyển đổi chữ hoa và chữ thường

    Trích xuất chuỗi bằng chữ cái hoặc số

    • Trích xuất, thay thế, chuyển đổi các yếu tố của một danh sách trong Python

    l_replace_all = ['ZZZ' if 'XXX' in s else s for s in l]
    print(l_replace_all)
    # ['ZZZ', 'ZZZ', 'three999aaa', '000111222']
    

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    08 Trả về
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    09 nếu
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    10 chứa
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    11. Sử dụng
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    12 để phủ định.

    [('ZZZ' if ('XXX' in s) else s) for s in l]
    

    trong toán tử trong Python (cho danh sách, chuỗi, từ điển, v.v.)

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    0

    Nếu bạn muốn thay thế chuỗi các phần tử của danh sách, hãy sử dụng phương thức chuỗi

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    8 cho mỗi phần tử bằng cách hiểu danh sách.

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    1

    Nếu không có chuỗi được thay thế, áp dụng

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    8 sẽ không thay đổi, vì vậy bạn không cần phải chọn một phần tử với
    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    05.

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    2

    Chuyển đổi chữ hoa và chữ thường

    Trích xuất chuỗi bằng chữ cái hoặc số

    Nhiều điều kiện

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    3

    Biểu thức chính quy (Regex)

    • Xem bài viết sau đây để biết thêm thông tin về cách trích xuất và thay thế các chuỗi.

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    4

    Nhiều điều kiện

    Biểu thức chính quy (Regex)

    Xem bài viết sau đây để biết thêm thông tin về cách trích xuất và thay thế các chuỗi.

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    5

    Biểu thức chính quy (Regex)

    Xem bài viết sau đây để biết thêm thông tin về cách trích xuất và thay thế các chuỗi.

    • Trích xuất một chuỗi con từ một chuỗi trong python (vị trí, regex)

    Thay thế các chuỗi trong python (thay thế, dịch, re.sub, re.sub)

    Danh sách toàn diện

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    6

    Để tạo một danh sách mới từ danh sách, bạn có thể sử dụng toàn bộ danh sách, đơn giản hơn để viết so với vòng lặp

    [expression for variable_name in iterable if condition]
    
    7.

    The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
    The list after substring replacement : ['1', 'kg', 'butter', 'for', '10', 'bucks']
    
    7

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

    Thay thế một chuỗi cụ thể trong một danh sách. Nếu bạn muốn thay thế chuỗi các phần tử của danh sách, hãy sử dụng phương thức chuỗi thay thế () cho mỗi phần tử bằng cách hiểu danh sách. Nếu không có chuỗi được thay thế, áp dụng thay thế () sẽ không thay đổi nó, vì vậy bạn không cần chọn một phần tử có điều kiện nếu điều kiện.use the string method replace() for each element with the list comprehension. If there is no string to be replaced, applying replace() will not change it, so you don't need to select an element with if condition .

    Làm thế nào để bạn thay thế một cái gì đó trong danh sách Python?

    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 ..
    Sử dụng danh sách cắt ..

    Làm thế nào để bạn thay thế một lá 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ế một chuỗi con?

    Thay thế () tham số Phương thức thay thế () có thể mất tối đa 3 tham số: Cựu Ước - Subring cũ bạn muốn thay thế.Mới - Chất nền mới sẽ thay thế cho chuỗi con cũ.Đếm (Tùy chọn) - Số lần bạn muốn thay thế bộ con cũ bằng bộ nền mới. The replace() method can take maximum of 3 parameters: old - old substring you want to replace. new - new substring which will replace the old substring. count (optional) - the number of times you want to replace the old substring with the new substring.