Python, một trong những ngôn ngữ lập trình phổ biến và mạnh mẽ, cung cấp nhiều phương thức để xử lý chuỗi (string). Một trong những phương thức quan trọng và hữu ích là split()
, cho phép bạn tách chuỗi thành các phần con dựa trên một ký tự hoặc chuỗi con cụ thể. Trong bài viết này, chúng ta sẽ khám phá sâu hơn về phương thức split()
trong Python, tìm hiểu cách sử dụng nó, và hiểu tại sao nó là một công cụ quan trọng trong xử lý chuỗi.
Giới Thiệu về Phương Thức split() trong Python
Phương thức split()
là một trong những cách đơn giản và mạnh mẽ để tách chuỗi thành các phần con. Phương thức này tách chuỗi dựa trên một ký tự phân tách đã cho (mặc định là khoảng trắng) và trả về một danh sách các phần con.
Cú pháp phương thức split như sau:
str.split(sep, maxsplit)
Trong đó :
sep
(viết tắt của separator) là ký tự phân cách dùng để tách chuỗi str ban đầu ra các chuỗi nhỏ. Nếu không chỉ định thì python mặc định sep là ký tự trống.maxsplit
là số lần tách lớn nhất. Nếu không chỉ định thì python mặc định số lần tách là vô hạn.
Dưới đây là một ví dụ về cách sử dụng split()
:
input_string = "apple,banana,orange" |
Kết quả:
['apple', 'banana', 'orange'] |
Phương thức split rút gọn
Chúng ta rút gọn các đối số sep và maxsplit như cú pháp dưới đây:
str.split()
Khi đó chuỗi str
sẽ được phân tách bởi ký tự trống với số lần tách không giới hạn.
Một số ví dụ cụ thể:
Ví dụ 1
print("My First Love".split()) |
Ở ví dụ này, sau khi tách chuỗi 'My First Love'
bằng ký tự trống, một list mới được tạo ra có phần tử là 3 chuỗi nhỏ thu về là My
, First
và Love
.
Ví dụ 2
print(" Next Page ".split()) |
Ở ví dụ thứ hai, chúng ta sẽ tách chuỗi ' Next Page '
có cấu trúc _ _ Next _ _ Page_ _
, với mỗi ký tự _
đại diện cho một ký tự trống ' '
cho dễ nhìn.
Ở đây ký tự phân tách
cũng được rút gọn và chúng ta cũng dùng ký tự trống để tách chuỗi ' Next Page '
. Tuy nhiên khi chúng ta dùng phương thức split mà không chỉ định ký tự phân tách thì các ký tự trống liên tiếp sẽ chỉ được coi là một ký tự trống.
Ngoài ra ký tự trống ở đầu và cuối của chuỗi cũng sẽ được bỏ qua khi chúng ta dùng phương thức split mà không chỉ định ký tự phân tách.
Do trong chuỗi ' Next Page '
tồn tại hai ký tự trống liên tiếp nhau ở giữa chuỗi , nên hai ký tự trống này chỉ được coi là một ký tự trống và được dùng để tách chuỗi. Ngoải ra, trong chuỗi cũng tồn tại các ký tự trống ở đầu và cuối chuỗi, nên các ký tự trống này sẽ bị bỏ qua.
Kết quả, một list mới được tạo ra có phần tử chỉ là 2 chuỗi nhỏ là 'Next'
và 'Page'
mà thôi.
Ví dụ 3
print("Apple\tOrange\tLemon".split()) |
Ở ví dụ thứ ba, chúng ta đã dùng chuỗi thoát \t
để biểu diễn ký tự trống ' '
tạo bởi tab trong chuỗi 'Apple\tOrange\tLemon'
. Do đó chuỗi này cũng sẽ được tách bằng ký tự trống, và một list mới được tạo ra có phần tử là 3 chuỗi nhỏ thu về là Apple
,Orange
và Lemon
.
※ Bạn có thể tìm hiểu thêm về chuỗi thoát trong bài Cách sử dụng chuỗi thoát escape sequence trong python.
Phương thức split chỉ định ký tự phân cách
Chúng ta chỉ định ký tự phân cách sep như cú pháp dưới đây
str
.split(sep
)
Chúng ta có thể chỉ định sep
là một ký tự, hay một chuỗi ký tự đều được. Khi đó chuỗi str
sẽ được phân tách bởi sep
như một số ví dụ sau:
Ví dụ 1
print("Orange,Lemon,Apple".split(",")) |
Trong hai ví dụ trên, chúng ta đã dùng một ký tự hoặc một chuỗi ký tự để tách chuỗi ban đầu ra các chuỗi nhỏ và tạo ra một list mới chứa chúng.
Ví dụ 2
print(" Next Page ".split(" ")) |
Hãy chú ý vào ví dụ 2 này. Mặc dù chuỗi ' Next Page '
có chứa các ký tự trống liên tiếp ' '
cũng như ký tự trống ở đầu và cuối chuỗi, nhưng trong trường hợp chúng ta chỉ định ký tự phân cách thì kết quả sẽ rất khác so với khi không chỉ định ký tự phân cách.
Nếu có chỉ định ký tự phân cách như trên, các ký tự trống liên tiếp sẽ được coi như ký tự riêng biệt chứ không bị coi là một ký tự trống như với trường hợp không chỉ định ký tự phân cách. Và các ký tự trống ở đầu và cuối chuỗi cũng sẽ không bị bỏ qua khi xử lý. Do đó, chuỗi ' Next Page '
sẽ được chia ra ra các chuỗi nhỏ là ' '
, ' '
, Next
, ' '
, Page
và ' '
như kết quả ở trên.
Hãy cùng xem thêm một vài trường hợp khác như dưới đây:
print("Next Page".split(" ")) |
Phương thức split chỉ định số lần tách tối đa
Chúng ta chỉ định ký tự phân cách tối đa maxsplit như cú pháp dưới đây
str
.split(maxsplit
)
Khi đó chuỗi sẽ được tách với số lần tối đa bằng với maxsplit, như các ví dụ dưới đây:
print("A B C D E".split(" ")) |
Lưu ý ở ví dụ cuối cùng, chúng ta đã chỉ định maxsplit lớn hơn số ký tự có trong chuỗi cần tách. Mặc dù có thể chỉ định maxsplit vô hạn, nhưng python cũng chỉ có thể cắt ra số chuỗi lớn nhất chính bằng độ dài chuỗi đó mà thôi.
- Về cách tính độ dài chuỗi, bạn có thể tìm hiểu chi tiết tại bài viết Độ dài chuỗi trong python.
Sử Dụng Phương Thức split() trong Python
Dưới đây là một số ví dụ về cách sử dụng phương thức split()
trong Python:
Phân Tách Chuỗi Bằng Khoảng Trắng (Space)
chuoi = "Python là một ngôn ngữ lập trình mạnh mẽ" |
Kết quả sẽ là một danh sách các từ:
['Python', 'là', 'một', 'ngôn', 'ngữ', 'lập', 'trình', 'mạnh', 'mẽ'] |
Phân Tách Chuỗi Bằng Dấu Phẩy (‘,’)
chuoi = "Sách, Bút, Vở, Máy tính, Máy in" |
Kết quả sẽ là danh sách các mục:
['Sách', 'Bút', 'Vở', 'Máy tính', 'Máy in'] |
Giới Hạn Số Lần Phân Tách
chuoi = "apple,banana,cherry,date" |
Kết quả sẽ bị giới hạn thành 3 mục:
['apple', 'banana', 'cherry,date'] |
Phân Tách Bằng Chuỗi Con
Bạn có thể sử dụng một chuỗi con thay vì một ký tự để phân tách chuỗi. Ví dụ:
chuoi = "Hello. How are you today?" |
Kết quả sẽ là danh sách các câu:
['Hello. ', ' today?'] |
Tại Sao Phương Thức split() Quan Trọng
Phương thức split()
trong Python có sự quan trọng đáng kể với các lý do sau:
Xử Lý Dữ Liệu Từ Tệp Tin: Khi đọc dữ liệu từ tệp tin văn bản, phương thức
split()
cho phép bạn tách dữ liệu thành các phần con dựa trên các dấu phân tách (ví dụ: dấu phẩy, tab, hoặc dấu cách) để dễ dàng phân tích dữ liệu.Xử Lý Dữ Liệu Người Dùng: Khi bạn làm việc với dữ liệu nhập từ người dùng,
split()
là một cách quan trọng để chia dữ liệu thành các mục riêng lẻ để kiểm tra và sử dụng.Xử Lý Dữ Liệu Văn Bản: Khi bạn làm việc với văn bản hoặc tin nhắn, việc tách văn bản thành các mục cụ thể như câu hoặc từ là quan trọng để thực hiện các phân tích văn bản phức tạp.
Xử Lý Dữ Liệu CSV: Trong xử lý dữ liệu CSV (Comma-Separated Values),
split()
thường được sử dụng để tách dữ liệu CSV thành các mục dựa trên dấu phẩy.Xử Lý Dữ Liệu Log: Trong việc xử lý dữ liệu log,
split()
giúp bạn phân tách dữ liệu log thành các phần con để phân tích và theo dõi các sự kiện.
Xử Lý Tình Huống Đặc Biệt
Cần chú ý đến một số tình huống đặc biệt khi sử dụng phương thức split()
:
Xử Lý Chuỗi Rỗng: Nếu chuỗi rỗng được truyền vào phương thức
split()
, nó sẽ trả về danh sách có một phần tử là chuỗi rỗng.Xử Lý Khoảng Trắng ở Đầu và Cuối: Khoảng trắng ở đầu và cuối chuỗi thường được xem xét là phần không quan trọng và được loại bỏ khi phân tách.
Xử Lý Dấu Phân Tách Trùng: Nếu có nhiều dấu phân tách liên tiếp trong chuỗi, chúng sẽ tạo ra các mục rỗng trong danh sách kết quả.
Kết Luận
Trên đây Kiyoshi đã hướng dẫn bạn về Phương thức split() trong python rồi. Đây là một công cụ quan trọng trong xử lý và phân tích dữ liệu văn bản. Nó cho phép chúng ta tách chuỗi thành các phần con dựa trên ký tự hoặc chuỗi con cụ thể, giúp xử lý dữ liệu một cách hiệu quả. Sử dụng split()
là một kỹ năng quan trọng cho việc đọc tệp tin, làm việc với dữ liệu người dùng, phân tích văn bản và nhiều tình huống xử lý dữ liệu khác trong lập trình Python.
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