Hướng dẫn remove all occurrences of a word in a string python - loại bỏ tất cả các lần xuất hiện của một từ trong chuỗi 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.

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

    Đầu ra

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


    Làm thế nào để bạn xóa tất cả các trường hợp của một chữ cái từ một chuỗi trong Python?

    Python loại bỏ ký tự khỏi chuỗi bằng cách sử dụng thay thế [], chúng ta có thể sử dụng chức năng String thay thế [] để thay thế một ký tự bằng một ký tự mới. Nếu chúng tôi cung cấp một chuỗi trống làm đối số thứ hai, thì ký tự sẽ bị xóa khỏi chuỗi.replace[] We can use string replace[] function to replace a character with a new character. If we provide an empty string as the second argument, then the character will get removed from the string.

    Làm thế nào để bạn loại bỏ sự xuất hiện của một từ trong một chuỗi?

    C chương trình để xóa từ đã cho từ một chuỗi..
    Lấy một chuỗi và chuỗi con của nó làm đầu vào ..
    Đặt từng từ của chuỗi đầu vào vào các hàng của mảng 2-D ..
    Tìm kiếm chuỗi con trong các hàng của mảng 2-D ..
    Khi bộ nền được có, sau đó ghi đè hàng hiện tại với hàng tiếp theo và cứ thế lên đến hàng cuối cùng ..

    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 phần tử khỏi một chuỗi?

    Chúng ta có thể sử dụng hàm removeOccurences [] và truyền chuỗi đầu vào và ký tự được xóa dưới dạng tham số.use the removeOccurrences[] function and pass the input string and the character to be removed as parameters.

    Làm cách nào để loại bỏ một từ khỏi một 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.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.

    Bài Viết Liên Quan

    Chủ Đề