Cách tách một chuỗi thành hai ký tự trong Python

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à 
    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']
    1, nghĩa là tất cả các lần xuất hiện đều được phân chia

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']
9

Chú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 recủ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

Chủ Đề