Trong hướng dẫn này, bạn sẽ học cách sử dụng Python để tách một chuỗi trên nhiều dấu phân cách. Bạn sẽ tìm hiểu cách thực hiện việc này với thư viện biểu thức chính quy tích hợp sẵn re
cũng như với phương thức chuỗi tích hợp .split[]
Nhưng tại sao thậm chí học cách chia nhỏ dữ liệu? . Dữ liệu có đủ hình dạng và thường không rõ ràng như chúng ta mong muốn. Sẽ có nhiều lúc bạn muốn tách một chuỗi bằng nhiều dấu phân cách để dễ làm việc hơn
Bây giờ, hãy bắt đâù
Mục lục
Làm thế nào để bạn tách một chuỗi trong Python?
Python có một phương thức tích hợp sẵn mà bạn có thể áp dụng cho chuỗi, có tên là .split[]
, cho phép bạn tách một chuỗi theo một dấu phân cách nhất định
Phương pháp trông như thế này
string.split[seperator, maxsplit]
Trong phương pháp này, các
- ngăn cách. đối số chấp nhận ký tự nào để phân tách. Nếu không có đối số nào được cung cấp, nó sẽ sử dụng bất kỳ khoảng trắng nào để tách
- chia tối đa. số lần phân tách cần thực hiện, trong đó giá trị mặc định là
1, nghĩa là tất cả các lần xuất hiện đều được phân chiasample_string = 'my name is nik, welcome to datagy' split_string = sample_string.split[','] print[split_string] # Returns: ['my name is nik', ' welcome to datagy']
Giả sử bạn có một chuỗi mà bạn muốn phân tách bằng dấu phẩy – hãy tìm hiểu cách thực hiện việc này
sample_string = 'my name is nik, welcome to datagy'
split_string = sample_string.split[',']
print[split_string]
# Returns: ['my name is nik', ' welcome to datagy']
Ở đây chúng ta có thể thấy rằng những gì được trả về là một danh sách chứa tất cả các giá trị mới được chia
Xem một số hướng dẫn Python khác về datagy, bao gồm hướng dẫn đầy đủ của chúng tôi về cách tạo kiểu cho Pandas và tổng quan toàn diện của chúng tôi về Pivot Tables trong Pandas
Tách chuỗi Python trên nhiều dấu phân cách bằng biểu thức chính quy
Cách trực quan nhất để tách chuỗi là sử dụng thư viện biểu thức chính quy tích hợp sẵn re
. Thư viện có một phương pháp .split[]
tích hợp sẵn, tương tự như ví dụ ở trên. Điểm độc đáo của phương pháp này là nó cho phép bạn sử dụng các biểu thức chính quy để phân tách các chuỗi của chúng tôi
Hãy xem phương pháp này trông như thế nào
re.split[pattern, string, maxsplit=0, flags=0]
Tương tự như ví dụ trên, đối số
sample_string = 'my name is nik, welcome to datagy'
split_string = sample_string.split[',']
print[split_string]
# Returns: ['my name is nik', ' welcome to datagy']
4 cho phép chúng ta đặt tần suất tách một chuỗi. Nếu nó được đặt thành bất kỳ số dương khác 0 nào, thì nó sẽ chỉ chia số lần đóVì vậy, hãy lặp lại ví dụ trước của chúng ta với mô-đun re
import re
sample_string = 'my name is nik, welcome to datagy'
split_string = re.split[',', sample_string]
print[split_string]
# Returns: ['my name is nik', ' welcome to datagy']
Bây giờ, giả sử bạn có một chuỗi có nhiều dấu phân cách. Phương pháp re
cũng giúp bạn dễ dàng tách chuỗi này
Hãy xem một ví dụ khác
import re
sample_string = 'hi! my name is nik, welcome; to datagy'
split_string = re.split[r',|!|;', sample_string]
print[split_string]
# Returns: ['hi', ' my name is nik', ' welcome', ' to datagy']
Những gì chúng ta đã làm ở đây được truyền vào một chuỗi thô mà re
giúp diễn giải. Chúng tôi chuyển vào ký tự đường ống
sample_string = 'my name is nik, welcome to datagy'
split_string = sample_string.split[',']
print[split_string]
# Returns: ['my name is nik', ' welcome to datagy']
8 như một câu lệnh sample_string = 'my name is nik, welcome to datagy'
split_string = sample_string.split[',']
print[split_string]
# Returns: ['my name is nik', ' welcome to datagy']
9Chúng ta có thể đơn giản hóa điều này hơn nữa bằng cách chuyển vào bộ sưu tập biểu thức chính quy. Hãy xem làm thế nào chúng ta có thể làm điều này
import re
sample_string = 'hi! my name is nik, welcome; to datagy'
split_string = re.split[r'[,;!]', sample_string]
print[split_string]
# Returns: ['hi', ' my name is nik', ' welcome', ' to datagy']
Điều này trả về điều tương tự như trước đây, nhưng viết và đọc sạch hơn một chút
Tách một chuỗi Python trên nhiều dấu phân cách bằng tách chuỗi
Bạn cũng có thể tránh sử dụng hoàn toàn mô-đun re
. Mô-đun có thể hơi đáng sợ, vì vậy nếu cảm thấy thoải mái hơn, bạn cũng có thể thực hiện việc này mà không cần mô-đun
Trong ví dụ bên dưới, bạn sẽ học cách tách một chuỗi Python có nhiều dấu phân cách bằng cách thay thế các giá trị trước. Chúng tôi sẽ lấy chuỗi mới của mình và thay thế tất cả các dấu phân cách thành một dấu phân cách nhất quán. Hãy cùng xem
sample_string = 'hi! my name is nik, welcome; to datagy'
new_string = sample_string.replace['!', ','].replace[';', ',']
split_string = new_string.split[',']
print[split_string]
# Returns: ['hi', ' my name is nik', ' welcome', ' to datagy']
Phương pháp này hoạt động tốt khi bạn có một số ít dấu phân cách, nhưng nó nhanh chóng trở nên lộn xộn khi bạn có nhiều hơn 2 hoặc 3 dấu phân cách mà bạn muốn chia chuỗi của mình theo. Tốt hơn hết là bạn nên sử dụng mô-đun re
để phân tách phức tạp hơn
Tạo một hàm để tách một chuỗi Python với nhiều dấu phân cách
Cuối cùng, chúng ta hãy xem cách tách một chuỗi bằng hàm. Đối với chức năng này, chúng tôi sẽ sử dụng mô-đun re
. Bạn sẽ có thể chuyển vào danh sách các dấu phân cách và một chuỗi và trả về một chuỗi phân tách
Bắt đầu nào
from re import split
def split_string[string, delimiters]:
"""Splits a string by a list of delimiters.
Args:
string [str]: string to be split
delimiters [list]: list of delimiters
Returns:
list: list of split strings
"""
pattern = r'|'.join[delimiters]
return split[pattern, string]
sample_string = 'hi! my name is nik, welcome; to datagy'
new_string = split_string[sample_string, [',',';','!']]
print[new_string]
# Returns: ['hi', ' my name is nik', ' welcome', ' to datagy']
Phần kết luận
Trong bài đăng này, bạn đã học cách tách một chuỗi Python bằng nhiều dấu phân cách. Bạn đã học cách thực hiện điều này bằng cách sử dụng phương thức .split[]
tích hợp sẵn, cũng như biểu thức chính quy tích hợp sẵn re
của hàm .split[]
Để tìm hiểu thêm về cách tách chuỗi Python, hãy xem .split[]
. Để tìm hiểu thêm về cách tách chuỗi bằng re
, hãy xem