Giống như một bản cập nhật, tôi đã viết lại ví dụ @Brian trong Python 3 và thực hiện các thay đổi đối với nó để di chuyển bước biên dịch regex bên trong hàm. Suy nghĩ của tôi ở đây là tính thời gian cho từng bước cần thiết để làm cho chức năng hoạt động. Có lẽ bạn đang sử dụng điện toán phân tán và không thể chia sẻ đối tượng regex giữa các công nhân của bạn và cần phải có bước # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 5 ở mỗi công nhân. Ngoài ra, tôi tò mò muốn biết thời gian hai cách triển khai maketrans khác nhau cho Python 3
table = str.maketrans({key: None for key in string.punctuation})so với
table = str.maketrans('', '', string.punctuation)Ngoài ra, tôi đã thêm một phương pháp khác để sử dụng tập hợp, trong đó tôi tận dụng chức năng giao nhau để giảm số lần lặp lại
Dấu câu là ký hiệu hoặc dấu hiệu dùng để biểu thị cấu trúc của cú pháp. Nó còn được gọi là dải phân cách. sau đây là các ví dụ về dấu chấm câu được sử dụng trong lập trình
- ( ) - để đại diện cho các đối số cho một phương thức
- [ ] - để đại diện cho các chỉ số mảng
- { } - để đại diện cho khối câu lệnh
- , - Nó được sử dụng để tách các mục trong bộ/danh sách
- ;
Sử dụng str. phương thức translate()
Đây là một phương pháp nhanh để loại bỏ tất cả các dấu câu khỏi một chuỗi
Trong ví dụ sau, chúng ta sẽ sử dụng hàm translate() từ thư viện chuỗi tích hợp để xóa tất cả dấu chấm câu khỏi chuỗi
Ví dụ
# Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation)))đầu ra
Hello This is STechiesSử dụng Phương thức Biểu thức Chính quy (REGEX)
Bằng cách sử dụng các biểu thức chính quy, chúng ta có thể xóa dấu chấm câu khỏi chuỗi với sự trợ giúp của hàm và mẫu chuỗi con
r'[^\w\s]'. Mẫu để chọn ký tự và số
Ví dụ
# Python program to strip punctuation from string # Using Regular Expressions (REGEX) import re # String with punctuation's string = "Hello!!!, $#@!*()&,.This is ##STechies$$." final_string = re.sub(r'[^\w\s]','',string) # Print final String print('String with Punctuation: ', string) print('String without Punctuation: ', final_string)đầu ra
String with Punctuation: Hello!!!, $#@!*()&,.This is ##STechies$$. String without Punctuation: Hello This is STechiesPhương thức chức năng tùy chỉnh
Trong ví dụ sau chúng ta sẽ tạo chương trình kiểm tra từng ký tự trong chuỗi bằng cách sử dụng vòng lặp for, nếu ký tự đó là dấu chấm câu thì nó sẽ thay thế bằng một chuỗi rỗng
Chấm câu. Một chuỗi Python có thể chứa các chữ cái, khoảng trắng, số và dấu chấm câu. Các ký tự dấu câu bao gồm dấu phẩy, dấu chấm và dấu chấm phẩy
Xóa dấu câu. Với toán tử "in" và chuỗi. hằng số dấu chấm câu, chúng ta có thể xóa tất cả các ký tự dấu chấm câu khỏi một chuỗi
Lưu ý Chúng tôi thêm từng ký tự vào kết quả không phải là dấu chấm câu. Khoảng trắng (không phải là dấu chấm câu) được giữ nguyên
chuỗi nhập def remove_punctuation(giá trị). kết quả = "" cho giá trị c. # Nếu char không phải là dấu câu, hãy thêm nó vào kết quả. nếu c không có trong chuỗi. chấm câu. kết quả += c trả về kết quả # Kiểm tra phương thức của chúng tôi. temp = "xin chào, bạn. hoan nghênh. " in(temp) print(remove_punctuation(temp))xin chào, bạn. hoan nghênh. xin chào bạn chào mừng
Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để xóa dấu câu khỏi chuỗi. Bạn sẽ học cách loại bỏ dấu chấm câu khỏi chuỗi Python bằng cách sử dụng phương thức # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 6, phương thức # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 7, thư viện biểu thức chính quy phổ biến # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 8 và cuối cùng là sử dụng vòng lặp for
Có thể làm việc và thao tác với các chuỗi là một kỹ năng cần thiết cho bất kỳ Pythonista nào. Các chuỗi bạn tìm thấy qua internet hoặc các tệp của bạn thường sẽ yêu cầu khá nhiều công việc để có thể phân tích chúng. Một trong những nhiệm vụ bạn thường gặp là khả năng sử dụng Python để xóa dấu chấm câu khỏi chuỗi
Câu trả lời nhanh. Sử dụng # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 9 để đạt hiệu quả nhanh nhất
[email protected][\]^_`{|}~0Hãy cùng xem cách chúng ta có thể sử dụng phương pháp # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 9 để xóa dấu chấm câu khỏi một chuỗi trong Python. Để thực hiện việc này, chúng tôi sẽ nhập thư viện print(string.punctuation) # Returns: !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~2 tích hợp, đi kèm với thuộc tính dấu chấm câu
________số 8Phương thức print(string.punctuation) # Returns: !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~0 ở đây có ba đối số, hai đối số đầu tiên là các chuỗi rỗng và đối số thứ ba là danh sách dấu câu mà chúng tôi muốn xóa. Điều này báo cho hàm thay thế tất cả dấu chấm câu bằng print(string.punctuation) # Returns: !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~4
Muốn tìm hiểu thêm? . ) để xóa một ký tự khỏi chuỗi trong Python, hãy xem hướng dẫn chuyên sâu của tôi tại đây
Chuỗi của Python là gì. chấm câu?
Python được tích hợp sẵn một thư viện, print(string.punctuation) # Returns: !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~2, bao gồm một thuộc tính print(string.punctuation) # Returns: !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~6 bao gồm nhiều ký tự dấu chấm câu được tích hợp sẵn. Vì thư viện được tích hợp sẵn nên bạn không cần lo lắng về việc phải cài đặt nó
Trong trường hợp bạn tò mò về dấu chấm câu nào được bao gồm trong print(string.punctuation) # Returns: !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~6, hãy xem nhanh
print(string.punctuation) # Returns: !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~Sử dụng Python để loại bỏ dấu câu khỏi chuỗi có biểu thức chính quy (regex)
Thư viện biểu thức chính quy của Python, # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 8, có cảm giác như nó có thể làm bất cứ thứ gì – bao gồm cả việc loại bỏ dấu chấm câu khỏi một chuỗi
Biểu thức chính quy rất tuyệt vì nó được tích hợp sẵn một số lớp ký tự hữu ích cho phép chúng tôi chọn các loại ký tự khác nhau. Ví dụ: \w\s tìm kiếm các từ hoặc khoảng trắng. Chúng ta có thể chọn ngược lại với điều này (i. e. , bất cứ thứ gì không phải là từ hoặc khoảng trắng) sử dụng ký tự ^. Sau đó, điều này cho phép chúng tôi chọn bất kỳ thứ gì không phải là từ hoặc khoảng trắng, trong trường hợp của chúng tôi, nó chọn dấu chấm câu
Hãy xem cách chúng ta có thể sử dụng regex để xóa dấu chấm câu trong Python
table = str.maketrans('', '', string.punctuation) 5Đây là một cách tiếp cận tuyệt vời để tìm kiếm bất kỳ thứ gì không phải là ký tự chữ và số hoặc khoảng trắng và thay thế nó bằng một chuỗi trống, do đó loại bỏ nó
Sử dụng Python để xóa dấu câu khỏi chuỗi bằng str. thay thế
Phương thức # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 7 giúp dễ dàng thay thế một ký tự. Ví dụ: nếu bạn chỉ muốn thay thế một ký tự dấu chấm câu, đây sẽ là một giải pháp đơn giản, dễ hiểu
Giả sử bạn chỉ muốn thay thế ký tự table = str.maketrans('', '', string.punctuation) 50 từ chuỗi của chúng tôi, chúng tôi có thể sử dụng phương thức # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 7 để thực hiện việc này. Chúng ta hãy xem làm thế nào để
table = str.maketrans('', '', string.punctuation) 7Những gì chúng tôi đã làm ở đây, là thêm phương thức table = str.maketrans('', '', string.punctuation) 52 vào chuỗi của chúng tôi. Tham số đầu tiên là chuỗi cần thay thế, trong trường hợp này là ký tự table = str.maketrans('', '', string.punctuation) 50 của chúng tôi. Tham số thứ hai là thay thế nó bằng gì, trong trường hợp này là một chuỗi rỗng
Trong ví dụ tiếp theo, bạn sẽ học cách sử dụng vòng lặp for để thay thế tất cả dấu chấm câu từ một chuỗi bằng vòng lặp for
Sử dụng Python để loại bỏ dấu câu khỏi chuỗi bằng vòng lặp for
Trong phần trước của hướng dẫn, bạn đã học cách sử dụng phương pháp # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 7 để xóa một ký tự dấu chấm câu. Trong phần này, chúng tôi sẽ lặp lại ví dụ này, nhưng sử dụng vòng lặp for để có thể xóa mọi ký tự dấu câu
Hãy xem cách chúng ta có thể làm điều này trong Python
# Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 0Một trong những điều cần lưu ý ở đây là chúng tôi đang viết đè lên chuỗi gốc của chúng tôi ở đây. Chúng tôi không thể gán một chuỗi mới, vì nó sẽ liên tục thay thế chính nó
Bây giờ bạn đã học được một số phương pháp, hãy xem phương pháp nào trong số những phương pháp này là nhanh nhất
Cách nhanh nhất để tách Chuỗi Python khỏi Dấu chấm câu là gì?
Trong hướng dẫn này, bạn đã học được ba phương pháp khác nhau để xóa dấu chấm câu khỏi một chuỗi trong Python. Hãy xem cách nào trong số những phương pháp này là nhanh nhất
Đối với thử nghiệm này, chúng tôi đã tạo một chuỗi dài hơn 1.000.000.000 ký tự và xóa tất cả dấu chấm câu khỏi chuỗi bằng Python
Hãy cùng xem kết quả
Thời gian thực hiện của phương thức. dịch()2. 35 giây biểu thức chính quy88. 8 giây cho vòng lặp với chuỗi. thay thế () 20. 6 giâyTìm ra phương pháp nhanh nhất để thay thế tất cả dấu câu trong một chuỗi bằng Python[email protected][\]^_`{|}~6 attribute. Included are: !”#$%&'()*+,-./:;[email protected][\]^_`{|}~Làm cách nào bạn có thể thay thế dấu câu bằng dấu cách trong Python?
Cách dễ nhất để thay thế dấu câu bằng dấu cách trong Python là sử dụng phương thức # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 9 với thư viện print(string.punctuation) # Returns: !"#$%&'()*+,-./:;<=>[email protected][\]^_`{|}~6. Đơn giản chỉ cần viết. table = str.maketrans('', '', string.punctuation) 59
Phần kết luận
Trong bài đăng này, bạn đã học cách tách dấu câu khỏi chuỗi Python. Bạn đã học cách thực hiện việc này bằng cách sử dụng phương pháp # Python program to strip punctuation from string # Using string library import string # String with punctuation's my_string = "Hello!!!, This is ##STechies$$." # Remove all punctuation print(my_string.translate(str.maketrans('', '', string.punctuation))) 6, cũng như các biểu thức chính quy. Bạn cũng đã học cách thực hiện điều này với phương pháp table = str.maketrans('', '', string.punctuation) 52 cũng như với vòng lặp for. Cuối cùng, bạn đã học được phương pháp nào là nhanh nhất