Rút gọn chuỗi (string compression) là một trong những vấn đề thường gặp trong lập trình khi bạn cần biểu diễn một chuỗi dài bằng một phiên bản ngắn gọn hơn. Python cung cấp nhiều cách để thực hiện việc này, và trong bài viết này, chúng ta sẽ tìm hiểu về các phương pháp rút gọn chuỗi trong Python.
Sử dụng vòng lặp for
Một cách đơn giản để rút gọn chuỗi là sử dụng một vòng lặp for
để duyệt qua chuỗi ban đầu và đếm số lần xuất hiện của từng ký tự. Sau đó, bạn có thể xây dựng chuỗi rút gọn bằng cách kết hợp ký tự và số lần xuất hiện tương ứng.
def compress_string(input_string): |
Chúng ta có thể gọi hàm trên để rút gọn chuỗi dài ban đầu bằng một phiên bản ngắn gọn hơn:
my_string = "aabbcccdddd" |
Kết quả:
a2b2c3d4 |
Sử dụng itertools.groupby
Thư viện itertools
trong Python cung cấp một công cụ mạnh mẽ để nhóm các phần tử liên tiếp trong một chuỗi. Bằng cách sử dụng groupby
, bạn có thể dễ dàng tạo một chuỗi rút gọn từ chuỗi ban đầu.
from itertools import groupby |
Chúng ta có thể gọi hàm trên để rút gọn chuỗi dài ban đầu bằng một phiên bản ngắn gọn hơn:
my_string = "aabbcccdddd" |
Kết quả:
a2b2c3d4 |
Sử dụng biểu thức chính quy (regular expressions)
Biểu thức chính quy là một công cụ mạnh mẽ để thực hiện các phân tích và biến đổi chuỗi. Bạn có thể sử dụng biểu thức chính quy để tìm kiếm và rút gọn chuỗi.
import re |
Chúng ta có thể gọi hàm trên để rút gọn chuỗi dài ban đầu bằng một phiên bản ngắn gọn hơn:
my_string = "aabbcccdddd" |
Kết quả:
a2b2c3d4 |
Sử dụng đệ quy
Bạn cũng có thể sử dụng phương pháp đệ quy để rút gọn chuỗi bằng cách xử lý từng phần của chuỗi ban đầu.
def compress_string(input_string): |
Chúng ta có thể gọi hàm trên để rút gọn chuỗi dài ban đầu bằng một phiên bản ngắn gọn hơn:
my_string = "aabbcccdddd" |
Kết quả:
a2b2c3d4 |
Sử dụng OrderedDict
Một cách khác để rút gọn chuỗi là sử dụng OrderedDict
từ thư viện collections
để duyệt qua chuỗi và đếm số lần xuất hiện của mỗi ký tự.
from collections import OrderedDict |
Chúng ta có thể gọi hàm trên để rút gọn chuỗi dài ban đầu bằng một phiên bản ngắn gọn hơn:
my_string = "aabbcccdddd" |
Kết quả:
a2b2c3d4 |
Kết luận
Trên đây Kiyoshi đã hướng dẫn bạn về Rút gọn chuỗi (string compression) trong python rồi. Các phương pháp trên đều cho kết quả tương tự, nhưng bạn có thể lựa chọn cách nào phù hợp nhất với nhu cầu của bạn. Rút gọn chuỗi là một thủ thuật quan trọng trong lập trình và có thể được áp dụng trong nhiều tình huống khác nhau.
URL Link
HOME › python cơ bản - lập trình python cho người mới bắt đầu>>09. chuỗi trong python