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
9,>>> "it is icy".translate[None, "i"] 't s cy'
>>> "it is icy".replace["i", ""] 't s cy'
Sử dụng
0,>>> import re >>> re.sub[r'i', "", "it is icy"] '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
1>>> import re >>> re.sub[r'i', "", "it is icy"] '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'
9 và >>> import re
>>> re.sub[r'i', "", "it is icy"]
't s cy'
0 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à
4 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 >>> import re
>>> re.sub[r'i', "", "it is icy"]
't s cy'
>>> import re
>>> re.sub[r'i', "", "it is icy"]
't s cy'
4 is a bit overkill for a single character replacement. So, they all are excluded from the timing comparison. Chúng tôi đã tìm hiểu về các cách khác nhau để xóa tất cả các lần xuất hiện của một nhân vật từ một chuỗi trong Python. Loại bỏ [] Xóa tất cả các trường hợp? Phương thức xóa [] loại bỏ sự xuất hiện đầu tiên của một mục trong danh sách. Một điều cần lưu ý khi sử dụng phương thức Remove [] là nó sẽ tìm kiếm và sẽ chỉ xóa trường hợp đầu tiên của một mục. 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 ký tự nhất định khỏi chuỗi python đầu vào?to_be_replaced with the replacement string. Để sử dụng hàm thay thế [] để xóa tất cả các phiên bản của ký tự khỏi chuỗi, chúng ta cần truyền ký tự đã cho làm đối số đầu tiên và chuỗi trống làm đối số thứ hai trong hàm forplay []. Ví dụ, Quảng cáo Output: Nó đã loại bỏ tất cả các thể hiện của ký tự ’s khỏi chuỗi.str.replace[to_be_replaced, replacement]
sample_str = 'This is a sample string'
single_char = 's'
# Remove all instances of character 's' from the string
sample_str = sample_str.replace[single_char, ""]
print[sample_str]
Thi i a ample tring
Xóa tất cả các phiên bản của ký tự khỏi chuỗi bằng cách sử dụng dịch []
Trong Python, lớp chuỗi cung cấp chức năng thành viên dịch []. Nó chấp nhận một bảng dịch như một đối số và thay thế các ký tự trong chuỗi dựa trên ánh xạ trong bảng dịch. Chúng ta có thể tạo một bảng dịch, trong đó ký tự sẽ được loại bỏ sẽ được ánh xạ tới chuỗi trống, tức là. Giả sử chúng ta muốn xóa tất cả các lần xuất hiện của ký tự khỏi chuỗi, vì vậy bảng dịch của nó sẽ như thế này,
Số lượng ASCII của ‘S Voi:
Chúng tôi sẽ chuyển bảng dịch này để dịch [] hàm như một đối số. Do đó hàm dịch [] sẽ thay thế tất cả các lần xuất hiện của ký tự bằng chuỗi trống. Về cơ bản, nó sẽ loại bỏ tất cả các lần xuất hiện của ký tự từ chuỗi. Ví dụ,
>>> "it is icy".translate[None, "i"]
't s cy'
0Output:
Thi i a ample tring
Nó đã loại bỏ tất cả các thể hiện của ký tự ’s khỏi chuỗi.
Xóa tất cả các phiên bản của ký tự khỏi chuỗi bằng cách sử dụng dịch []
Trong Python, lớp chuỗi cung cấp chức năng thành viên dịch []. Nó chấp nhận một bảng dịch như một đối số và thay thế các ký tự trong chuỗi dựa trên ánh xạ trong bảng dịch. Chúng ta có thể tạo một bảng dịch, trong đó ký tự sẽ được loại bỏ sẽ được ánh xạ tới chuỗi trống, tức là. Giả sử chúng ta muốn xóa tất cả các lần xuất hiện của ký tự khỏi chuỗi, vì vậy bảng dịch của nó sẽ như thế này,
>>> "it is icy".translate[None, "i"]
't s cy'
2Số lượng ASCII của ‘S Voi:
>>> "it is icy".translate[None, "i"]
't s cy'
3Output:
Thi i a ample tring
Nó đã loại bỏ tất cả các thể hiện của ký tự ’s khỏi chuỗi.
Xóa tất cả các phiên bản của ký tự khỏi chuỗi bằng cách sử dụng dịch []
Trong Python, lớp chuỗi cung cấp chức năng thành viên dịch []. Nó chấp nhận một bảng dịch như một đối số và thay thế các ký tự trong chuỗi dựa trên ánh xạ trong bảng dịch. Chúng ta có thể tạo một bảng dịch, trong đó ký tự sẽ được loại bỏ sẽ được ánh xạ tới chuỗi trống, tức là. Giả sử chúng ta muốn xóa tất cả các lần xuất hiện của ký tự khỏi chuỗi, vì vậy bảng dịch của nó sẽ như thế này,filter[] function to filter all the occurrences of a characters from a string. Steps are as follows,
- Số lượng ASCII của ‘S Voi:
- Chúng tôi sẽ chuyển bảng dịch này để dịch [] hàm như một đối số. Do đó hàm dịch [] sẽ thay thế tất cả các lần xuất hiện của ký tự bằng chuỗi trống. Về cơ bản, nó sẽ loại bỏ tất cả các lần xuất hiện của ký tự từ chuỗi. Ví dụ,
- Xóa tất cả các phiên bản của ký tự khỏi chuỗi bằng cách sử dụng regex
- Trong Python, mô -đun Regex cung cấp một hàm để thay thế nội dung của chuỗi dựa trên mẫu Regex phù hợp. Chữ ký của chức năng là như thế này,
- Chúng ta có thể sử dụng điều này để loại bỏ tất cả các thể hiện của một ký tự khỏi một chuỗi. Đối với điều này, chúng ta cần vượt qua một mẫu regex phù hợp với tất cả các sự xuất hiện của các ký tự đã cho. Ngoài ra, như một chuỗi thay thế, chúng ta cần vượt qua một chuỗi trống. Ví dụ: hãy để Lừa xem cách xóa tất cả các lần xuất hiện của ký tự ’s khỏi một chuỗi bằng cách sử dụng regex,
Xóa tất cả các phiên bản của một ký tự khỏi chuỗi bằng Filter [] và tham gia []
>>> "it is icy".translate[None, "i"]
't s cy'
5Output:
Thi i a ample tring
Nó đã loại bỏ tất cả các thể hiện của ký tự ’s khỏi chuỗi.
Xóa tất cả các phiên bản của ký tự khỏi chuỗi bằng cách sử dụng dịch []
Trong Python, lớp chuỗi cung cấp chức năng thành viên dịch []. Nó chấp nhận một bảng dịch như một đối số và thay thế các ký tự trong chuỗi dựa trên ánh xạ trong bảng dịch. Chúng ta có thể tạo một bảng dịch, trong đó ký tự sẽ được loại bỏ sẽ được ánh xạ tới chuỗi trống, tức là. Giả sử chúng ta muốn xóa tất cả các lần xuất hiện của ký tự khỏi chuỗi, vì vậy bảng dịch của nó sẽ như thế này,
Xóa tất cả các phiên bản của một ký tự khỏi chuỗi bằng Filter [] và tham gia []
>>> "it is icy".translate[None, "i"]
't s cy'
7Output:
Thi i a ample tring
Nó đã loại bỏ tất cả các thể hiện của ký tự ’s khỏi chuỗi.
Summary:
Trong Python, bạn có thể sử dụng hàm Filter [] để lọc tất cả các lần xuất hiện của một ký tự từ một chuỗi. Các bước như sau,