Có cách nào để thực hiện phương pháp str.strip()
, ngoại trừ tất cả các sự kiện, không chỉ ở đầu và cuối chuỗi?Xóa tất cả các lần xuất hiện của một vài ký tự khỏi một chuỗi
Ví dụ:
>> '::2012-05-14 18:10:20.856000::'.strip(' -.:')
>> '2012-05-14 18:10:20.856000'
Tôi muốn
>> '::2012-05-14 18:10:20.856000::'.crazy_function(' -.:')
>> '20120514181020856000'
Liệu Python cung cấp cho tôi một built-in crazy_function
???
Tôi có thể dễ dàng thực hiện theo chương trình, nhưng tôi muốn biết liệu có tích hợp sẵn cho điều đó hay không. Không thể tìm thấy. Cảm ơn sự giúp đỡ của bạn.
Tôi thích giải pháp dựng sẵn như thế này trên giải pháp được viết bởi Nick Craig-Wood. Nhưng tôi tự hỏi: Về mặt hiệu suất, điều gì tốt hơn? Tôi có thể sai, nhưng chức năng 'dịch' này có thể sử dụng chức năng regexp. – Francisco
@Francisco: Tôi đoán có hai chức năng dịch khác nhau. Phiên bản 3-arugment hoạt động với các chuỗi _byte, nó sử dụng một bảng dịch, ánh sáng nhanh. Phiên bản unicode hoạt động trên _strings_, nó thay thế các ký tự từng cái một và thực sự cũng chậm như regexp nếu không chậm hơn. Tôi vẫn sử dụng các biểu thức chính quy cho vấn đề của bạn, vì việc trộn _strings_ và _byte sequences_ không bao giờ là một ý tưởng hay, ngay cả trong python2. – georg
@ thg435: Trong vấn đề của tôi speifically phiên bản byte là tốt. Tôi đang tạo mã id dựa trên str (datetime.datetime.now()) và thêm một chuỗi thêm vào nó. Vì vậy, unicode không phải là một vấn đề đối với tôi. – Francisco