Hướng dẫn how do you remove all occurrences of a string from a string in python? - làm cách nào để xóa tất cả các lần xuất hiện của một chuỗi khỏi một chuỗi trong python?

Chuỗi là bất biến trong Python, có nghĩa là một khi chuỗi được tạo, bạn không thể thay đổi nội dung của chuỗi. Nếu tất cả, bạn cần thay đổi nó, một thể hiện mới của chuỗi sẽ được tạo bằng các thay đổi.

Có điều đó trong tâm trí, chúng ta có rất nhiều cách để giải quyết điều này

  1. Sử dụng

    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    0,

    >>> "it is icy".replace["i", ""]
    't s cy'
    
  2. Sử dụng

    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    1,

    >>> "it is icy".translate[None, "i"]
    't s cy'
    
  3. Sử dụng biểu thức chính quy,

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
  4. Sử dụng sự hiểu biết làm bộ lọc,

    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
  5. Sử dụng hàm

    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    2

    >>> "".join[filter[lambda char: char != "i", "it is icy"]]
    't s cy'
    

So sánh thời gian

def findreplace[m_string, char]:
    m_string = list[m_string]
    for k in m_string:
        if k == char:
            del[m_string[m_string.index[k]]]
    return "".join[m_string]

def replace[m_string, char]:
    return m_string.replace["i", ""]

def translate[m_string, char]:
    return m_string.translate[None, "i"]

from timeit import timeit

print timeit["findreplace['it is icy','i']", "from __main__ import findreplace"]
print timeit["replace['it is icy','i']", "from __main__ import replace"]
print timeit["translate['it is icy','i']", "from __main__ import translate"]

Kết quả

1.64474582672
0.29278588295
0.311302900314

Các phương pháp

>>> "it is icy".translate[None, "i"]
't s cy'
0 và
>>> "it is icy".translate[None, "i"]
't s cy'
1 nhanh hơn 8 và 5 lần so với câu trả lời được chấp nhận.

Lưu ý: Phương thức hiểu và phương thức lọc dự kiến ​​sẽ chậm hơn, trong trường hợp này, vì chúng phải tạo danh sách và sau đó chúng phải được truyền lại một lần nữa để xây dựng một chuỗi. Và

>>> "it is icy".translate[None, "i"]
't s cy'
5 là một chút quá mức cần thiết cho một thay thế một ký tự. Vì vậy, tất cả họ đều bị loại khỏi so sánh thời gian. Comprehension method and filter methods are expected to be slower, for this case, since they have to create list and then they have to be traversed again to construct a string. And
>>> "it is icy".translate[None, "i"]
't s cy'
5 is a bit overkill for a single character replacement. So, they all are excluded from the timing comparison.

Xem thảo luận

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

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

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

    Lưu bài viết

    Đọc

    Bàn luận Usually this function is used to convert a particular character to some other character. By translating the resultant removal character to “None”, this function can perform this task. This function works only for Python2 

    Ngày nay, thao tác chuỗi rất phổ biến trong Python, và do tính cách bất biến của nó, đôi khi, việc biết công việc và hack của nó trở nên quan trọng hơn. Bài viết cụ thể này giải quyết vấn đề xóa tất cả các lần xuất hiện của một ký tự khỏi một chuỗi. Hãy để thảo luận về những cách mà điều này có thể đạt được. & NBSP;

    Phương pháp số 1: Sử dụng dịch [] Thông thường hàm này được sử dụng để chuyển đổi một ký tự cụ thể sang một số ký tự khác. Bằng cách dịch ký tự loại bỏ kết quả sang không có ai, chức năng này có thể thực hiện nhiệm vụ này. Hàm này chỉ hoạt động cho Python2 & NBSP;

    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    9

    Python

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    3

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    4
    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    5

    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    6
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    7
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    8

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    0
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    7
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    8

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    6
    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    7
    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    8
    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    9

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    4
    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    5

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    6
    >>> "".join[filter[lambda char: char != "i", "it is icy"]]
    't s cy'
    
    2

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    6
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    1
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    2
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    3

    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    4
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    7
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    6
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    7
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    8

    The original string is : GeeksforGeeks
    The string after character deletion : GksforGks

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    6
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    1
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    2
    >>> "".join[filter[lambda char: char != "i", "it is icy"]]
    't s cy'
    
    6
    This function works functionally quite similarly to the above function, but it is recommended due to several reasons. It can be used in newer versions of Python and is more efficient than the above function. We replace the empty string instead of None as above for using this function to perform this task. 

    Python3

    Đầu ra: & nbsp;

    Phương pháp số 2: Sử dụng thay thế [] Hàm này hoạt động có chức năng khá giống với hàm trên, nhưng nó được khuyến nghị vì một số lý do. Nó có thể được sử dụng trong các phiên bản mới hơn của Python và hiệu quả hơn hàm trên. Chúng tôi thay thế chuỗi trống thay vì không có như trên để sử dụng chức năng này để thực hiện nhiệm vụ này. & NBSP;

    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    6
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    7
    >>> "".join[filter[lambda char: char != "i", "it is icy"]]
    't s cy'
    
    9

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    0
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    7
    def findreplace[m_string, char]:
        m_string = list[m_string]
        for k in m_string:
            if k == char:
                del[m_string[m_string.index[k]]]
        return "".join[m_string]
    
    def replace[m_string, char]:
        return m_string.replace["i", ""]
    
    def translate[m_string, char]:
        return m_string.translate[None, "i"]
    
    from timeit import timeit
    
    print timeit["findreplace['it is icy','i']", "from __main__ import findreplace"]
    print timeit["replace['it is icy','i']", "from __main__ import replace"]
    print timeit["translate['it is icy','i']", "from __main__ import translate"]
    
    2

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    4
    def findreplace[m_string, char]:
        m_string = list[m_string]
        for k in m_string:
            if k == char:
                del[m_string[m_string.index[k]]]
        return "".join[m_string]
    
    def replace[m_string, char]:
        return m_string.replace["i", ""]
    
    def translate[m_string, char]:
        return m_string.translate[None, "i"]
    
    from timeit import timeit
    
    print timeit["findreplace['it is icy','i']", "from __main__ import findreplace"]
    print timeit["replace['it is icy','i']", "from __main__ import replace"]
    print timeit["translate['it is icy','i']", "from __main__ import translate"]
    
    4
    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    8
    def findreplace[m_string, char]:
        m_string = list[m_string]
        for k in m_string:
            if k == char:
                del[m_string[m_string.index[k]]]
        return "".join[m_string]
    
    def replace[m_string, char]:
        return m_string.replace["i", ""]
    
    def translate[m_string, char]:
        return m_string.translate[None, "i"]
    
    from timeit import timeit
    
    print timeit["findreplace['it is icy','i']", "from __main__ import findreplace"]
    print timeit["replace['it is icy','i']", "from __main__ import replace"]
    print timeit["translate['it is icy','i']", "from __main__ import translate"]
    
    6
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    1
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    2
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    3

    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    4
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    7
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    6
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    7
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    8

    The original string is : GeeksforGeeks
    The string after character deletion : GksforGks

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    6
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    1
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    2
    >>> "".join[filter[lambda char: char != "i", "it is icy"]]
    't s cy'
    
    6
    Without using any built-in methods

    Python3

    Đầu ra: & nbsp;

    Phương pháp số 2: Sử dụng thay thế [] Hàm này hoạt động có chức năng khá giống với hàm trên, nhưng nó được khuyến nghị vì một số lý do. Nó có thể được sử dụng trong các phiên bản mới hơn của Python và hiệu quả hơn hàm trên. Chúng tôi thay thế chuỗi trống thay vì không có như trên để sử dụng chức năng này để thực hiện nhiệm vụ này. & NBSP;

    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    6
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    7
    >>> "".join[filter[lambda char: char != "i", "it is icy"]]
    't s cy'
    
    9

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    0
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    7
    def findreplace[m_string, char]:
        m_string = list[m_string]
        for k in m_string:
            if k == char:
                del[m_string[m_string.index[k]]]
        return "".join[m_string]
    
    def replace[m_string, char]:
        return m_string.replace["i", ""]
    
    def translate[m_string, char]:
        return m_string.translate[None, "i"]
    
    from timeit import timeit
    
    print timeit["findreplace['it is icy','i']", "from __main__ import findreplace"]
    print timeit["replace['it is icy','i']", "from __main__ import replace"]
    print timeit["translate['it is icy','i']", "from __main__ import translate"]
    
    2

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    4
    def findreplace[m_string, char]:
        m_string = list[m_string]
        for k in m_string:
            if k == char:
                del[m_string[m_string.index[k]]]
        return "".join[m_string]
    
    def replace[m_string, char]:
        return m_string.replace["i", ""]
    
    def translate[m_string, char]:
        return m_string.translate[None, "i"]
    
    from timeit import timeit
    
    print timeit["findreplace['it is icy','i']", "from __main__ import findreplace"]
    print timeit["replace['it is icy','i']", "from __main__ import replace"]
    print timeit["translate['it is icy','i']", "from __main__ import translate"]
    
    4
    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    8
    def findreplace[m_string, char]:
        m_string = list[m_string]
        for k in m_string:
            if k == char:
                del[m_string[m_string.index[k]]]
        return "".join[m_string]
    
    def replace[m_string, char]:
        return m_string.replace["i", ""]
    
    def translate[m_string, char]:
        return m_string.translate[None, "i"]
    
    from timeit import timeit
    
    print timeit["findreplace['it is icy','i']", "from __main__ import findreplace"]
    print timeit["replace['it is icy','i']", "from __main__ import replace"]
    print timeit["translate['it is icy','i']", "from __main__ import translate"]
    
    6
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    1
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    2
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    3

    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    4
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    7
    1.64474582672
    0.29278588295
    0.311302900314
    
    2

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    4
    1.64474582672
    0.29278588295
    0.311302900314
    
    4
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    1
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    2
    >>> "".join[filter[lambda char: char != "i", "it is icy"]]
    't s cy'
    
    6

    Phương pháp số 3: Không sử dụng bất kỳ phương pháp tích hợp nào

    >>> import re
    >>> re.sub[r'i', "", "it is icy"]
    't s cy'
    
    4
    The original string is : GeeksforGeeks
    The string after character deletion : GksforGks
    5
    The original string is : GeeksforGeeks
    The string after character deletion : GksforGks
    6
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    1
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    2
    >>> "".join[[char for char in "it is icy" if char != "i"]]
    't s cy'
    
    3

    The original string is : GeeksforGeeks
    The string after character deletion : GksforGks
    0
    >>> "it is icy".translate[None, "i"]
    't s cy'
    
    7
    The original string is : GeeksforGeeks
    The string after character deletion : GksforGks
    2

    The original string is : GeeksforGeeks
    The string after character deletion : GksforGks


    Làm thế nào để bạn tìm thấy tất cả các lần xuất hiện của chuỗi trong một chuỗi python?

    Finditer [] Chức năng Finditer của thư viện Regex có thể giúp chúng tôi thực hiện nhiệm vụ tìm ra các lần xuất hiện của chuỗi con trong chuỗi đích và hàm bắt đầu có thể trả về chỉ số kết quả của từng phần trong số chúng. The finditer function of the regex library can help us perform the task of finding the occurrences of the substring in the target string and the start function can return the resultant index of each of them.

    Làm cách nào để xóa một chuỗi khỏi chuỗi trong Python?

    Trong Python, bạn có thể sử dụng các phương thức thay thế [] và dịch [] để chỉ định ký tự nào bạn muốn xóa khỏi chuỗi và trả về kết quả chuỗi được sửa đổi mới.Điều quan trọng cần nhớ là chuỗi ban đầu sẽ không bị thay đổi vì chuỗi là bất biến.Dưới đây là cú pháp cơ bản cho phương thức thay thế [].use the replace[] and translate[] methods to specify which characters you want to remove from the string and return a new modified string result. It is important to remember that the original string will not be altered because strings are immutable. Here is the basic syntax for the replace[] method.

    Làm thế nào để bạn loại bỏ tất cả các lần xuất hiện của một yếu tố trong Python?

    Sử dụng Filter [] và __ne__Sing Remove [] Using remove[]

    Loại bỏ trong Python loại bỏ tất cả các lần xuất hiện?

    Trong Python Remove [] sẽ loại bỏ sự xuất hiện đầu tiên của giá trị trong danh sách.remove[] will remove the first occurrence of value in a list.

    Bài Viết Liên Quan

    Chủ Đề