Phương Thức split() trong Python | Laptrinhcanban.com

HOME › >>

Phương Thức split() trong Python

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"
fruits = input_string.split(",")
print(fruits)

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())
#>> ['My', 'First', 'Love']

Ở 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())
#>> ['Next', 'Page']

Ở 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())
#>> ['Apple', 'Orange', 'Lemon']

Ở 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(","))
#>> ['Orange', 'Lemon', 'Apple']

print("Red*-*Blue*-*Green".split("*-*"))
#>> ['Red', 'Blue', 'Green']

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(" "))
#>> ['', '', 'Next', '', 'Page', '', '']

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(" "))
#>> ['Next', 'Page']

print("Next Page".split(" "))
#>> ['Next', '', 'Page']

print("Next Page".split(" "))
#>> ['Next', '', '', 'Page']

print(" Next Page ".split(" "))
#>> ['', 'Next', 'Page', '']

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(" "))
#>> ['A', 'B', 'C', 'D', 'E']

print("A B C D E".split(" ", 1))
#>> ['A', 'B C D E']

print("A B C D E".split(" ", 2))
#>> ['A', 'B', 'C D E']

print("A B C D E".split(" ", 3))
#>> ['A', 'B', 'C', 'D E']

print("A B C D E".split(" ", 4))
#>> ['A', 'B', 'C', 'D', 'E']

print("A B C D E".split(" ", 8))
#>> ['A', 'B', 'C', 'D', 'E']

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.

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ẽ"
cac_tu = chuoi.split()
print(cac_tu)

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"
danh_sach = chuoi.split(", ")
print(danh_sach)

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"
danh_sach = chuoi.split(",", 2)
print(danh_sach)

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?"
cac_cau = chuoi.split("How are you")
print(cac_cau)

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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():

  1. 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.

  2. 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.

  3. 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

https://laptrinhcanban.com/python/nhap-mon-lap-trinh-python/thao-tac-voi-chuoi-string-trong-python/split-trong-python/

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME  › >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.