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
Sử dụng
0,>>> "it is icy".translate[None, "i"] 't s cy'
>>> "it is icy".replace["i", ""] 't s cy'
Sử dụng
1,>>> "it is icy".translate[None, "i"] 't s cy'
>>> "it is icy".translate[None, "i"] 't s cy'
Sử dụng biểu thức chính quy,
>>> import re >>> re.sub[r'i', "", "it is icy"] 't s cy'
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'
Sử dụng hàm
2>>> "it is icy".translate[None, "i"] 't s cy'
>>> "".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à
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'
>>> "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ả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'
9Python
>>> 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
4>>> "".join[[char for char in "it is icy" if char != "i"]]
't s cy'
7 >>> "it is icy".translate[None, "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>>> "".join[[char for char in "it is icy" if char != "i"]]
't s cy'
The original string is : GeeksforGeeks The string after character deletion : GksforGks
6>>> import re
>>> re.sub[r'i', "", "it is icy"]
'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'
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. >>> "".join[filter[lambda char: char != "i", "it is icy"]]
't s cy'
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'
4def 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
4>>> "".join[[char for char in "it is icy" if char != "i"]]
't s cy'
7 >>> "it is icy".translate[None, "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
>>> "".join[[char for char in "it is icy" if char != "i"]]
't s cy'
The original string is : GeeksforGeeks The string after character deletion : GksforGks
6>>> import re
>>> re.sub[r'i', "", "it is icy"]
'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'
6Without using any built-in methods>>> "".join[filter[lambda char: char != "i", "it is icy"]]
't s cy'
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'
4def 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'
41.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'
6Phươ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'
4The original string is : GeeksforGeeks The string after character deletion : GksforGks5
The original string is : GeeksforGeeks The string after character deletion : GksforGks6
>>> "".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