Tin tức và phân tích của tất cả các thiết bị di động

Làm cách nào để sử dụng phương thức split() trong Python?

Trong hướng dẫn này, bạn sẽ học cách sử dụng phương thức split() của Python để tách một chuỗi thành một danh sách các chuỗi.

Khi làm việc với các chuỗi trong Python, bạn có thể sử dụng một số phương thức chuỗi tích hợp để lấy các bản sao đã sửa đổi của chuỗi, chẳng hạn như chuyển thành chữ hoa, sắp xếp chuỗi, v.v. Một phương pháp như vậy là .split(), phương thức này phân tách một chuỗi Python thành một danh sách các chuỗi, chúng ta sẽ tìm hiểu thêm về phương thức này trong các ví dụ về mã.

Đến cuối hướng dẫn, bạn sẽ học được những điều sau:

  • cách hoạt động của phương thức .split()
  • cách điều chỉnh phân tách bằng tham số sep và maxsplit

Hãy bắt đầu!

Cú pháp của phương thức split() trong Python

Đây là cú pháp chung để sử dụng phương thức split() của Python trên bất kỳ chuỗi hợp lệ nào:

string.split(sep, maxsplit)

# Parameters:
sep, maxsplit

# Returns:
A list of strings

Ở đây, chuỗi có thể là bất kỳ chuỗi python hợp lệ nào.

Cả hai tham số sep và maxsplit đều là tùy chọn.

  • sep là dấu phân cách mà bạn muốn tách chuỗi. Nó phải được chỉ định như một chuỗi.
  • maxsplit là một số nguyên xác định số lần bạn muốn tách chuỗi.

Các giá trị mặc định của chúng được sử dụng khi bạn không cung cấp các tham số tùy chọn.

  • Nếu bạn không chỉ định rõ ràng sep, khoảng trắng sẽ được sử dụng làm dấu phân cách mặc định.
  • Nếu bạn không chỉ định giá trị cho maxsplit, nó sẽ mặc định là -1có nghĩa là chuỗi sẽ được phân chia trên tất cả các lần xuất hiện của dấu phân cách.

Xây dựng cú pháp bằng ngôn ngữ đơn giản:

Phương thức split() chia chuỗi maxsplit theo số lần sau khi xảy ra dấu tách được chỉ định bởi tham số sep.

Bây giờ chúng ta đã học cú pháp của phương thức split() trong Python, hãy bắt đầu mã hóa một số ví dụ.

Tách một chuỗi python thành một danh sách các chuỗi

Nếu bạn có con trăn 3 được cài đặt trên máy tính của mình, bạn có thể viết mã với hướng dẫn này bằng cách chạy các đoạn mã Python REPL sau đây.

Để chạy REPL, hãy chạy một trong các lệnh sau từ thiết bị đầu cuối:

$ python
$ python -i

▶️ Bạn cũng có thể thử các ví dụ này trong trình soạn thảo Python newsblog.pl.

Trong ví dụ này, py_str là một chuỗi Python. Hãy gọi phương thức .split() trên py_str không có tham số và quan sát kết quả.

py_str = "Learn how to use split() in Python"
py_str.split()

# Output
['Learn', 'how', 'to', 'use', 'split()', 'in', 'Python']

Như bạn có thể thấy ở trên, chuỗi được phân chia trên tất cả các lần xuất hiện của khoảng trắng.

Tách chuỗi python bằng sự xuất hiện của dấu phân cách

#1. Như một ví dụ đầu tiên, hãy tách chuỗi py_str với hai dấu gạch dưới (__) làm dấu phân cách.

py_str = "All__the__best"
py_str.split(sep='__')

# Output
['All', 'the', 'best']

#2. Hãy lấy một ví dụ khác. Ở đây py_str có ba câu, mỗi câu kết thúc bằng dấu chấm (.).

py_str = "I love coding. Python is cool. I'm learning Python in 2022"
py_str.split(sep='.')

# Output
['I love coding', ' Python is cool', " I'm learning Python in 2022"]

▶️ Khi chúng ta gọi phương thức .split() trên chuỗi này, với ‘.’ như một dấu phân cách, danh sách kết quả có ba câu, như bạn có thể thấy trong ô mã ở trên.

#3. Hãy đặt một số câu hỏi:

  • Điều gì xảy ra khi dấu tách không bao giờ xuất hiện trong chuỗi?
  • Việc phân chia sẽ diễn ra như thế nào trong trường hợp này?

Đây là một ví dụ:

Chúng tôi đang cố gắng tách py_str khi xuất hiện dấu hoa thị

py_str = "This line contains no asterisk."
py_str.split(sep='*')

# Output
['This line contains no asterisk.']

– mà không xảy ra.

Vì không thể thực hiện phân tách trong trường hợp này nên danh sách kết quả chứa toàn bộ chuỗi.

Trong phần tiếp theo, chúng ta sẽ xem cách chúng ta có thể sử dụng phương thức split() trên nội dung của tệp văn bản.

Tách nội dung tệp python

Khi làm việc với các tệp văn bản trong Python, bạn có thể cần chia nhỏ nội dung của tệp – dựa trên dấu phân cách – để xử lý dễ dàng hơn.

Đây là một tệp văn bản ví dụ:

with open('sample.txt') as f:
  content = f.read()
  str_list= content.split(sep='...')
  for string in str_list:
    print(string,end='')

Đoạn mã sau cho biết cách sử dụng tính năng tách nội dung cho tệp văn bản mẫu.

  • Đoạn mã trên thực hiện như sau:
  • Nó sử dụng trình quản lý ngữ cảnh để mở và làm việc với tệp văn bản “sample.txt”.
  • Đọc nội dung của tệp bằng phương thức .read() trên đối tượng tệp f.
  • Tách nội dung sau dấu chấm lửng ngăn cách (…) thành danh sách str_list.

Nó lặp qua str_list để truy cập từng chuỗi và in ra.

# Output
This is a sample text file
It contains info on
Getting started with <a href="https://newsblog.pl.com/pcap-certification/">programming in Python</a>
According to the 2022 StackOverflow Developer Survey
Python is one of the most-loved programming languages
So what are you waiting for? Start learning!

Đây là kết quả.

Như một bài tập, bạn có thể thử tách nội dung của tệp văn bản bằng bất kỳ dấu phân cách nào bạn chọn.

Tách một chuỗi python thành nhiều đoạn

Khi bạn tách một chuỗi một lần, bạn sẽ có hai phần; chia hai lần là ba.

📋 Nói chung, khi bạn chia một chuỗi K lần, bạn sẽ nhận được K+ 1 miếng.

Điều này được minh họa dưới đây.

Cách thức hoạt động của tham số maxsplit (ảnh của tác giả)

py_str = "Chunk#1  I'm a larger chunk, Chunk#2"
py_str.split(maxsplit=1)

# Output
['Chunk#1', "I'm a larger chunk, Chunk#2"]

#1. Chúng tôi đặt maxsplit thành 1. Chúng tôi không chỉ định dấu phân tách, vì vậy, việc tách sẽ được thực hiện trên khoảng trắng theo mặc định.

Mặc dù đoạn thứ hai trong danh sách có chứa khoảng trắng, việc tách không xảy ra vì việc tách hiện được kiểm soát bởi giá trị maxsplit là một.

py_str = "Chunk#1 Chunk#2 I'm one large Chunk#3, even though I contain whitespaces"
py_str.split(maxsplit=2)

# Output
['Chunk#1',
 'Chunk#2',
 "I'm one large Chunk#3, even though I contain whitespaces"]

#2. Hãy tăng giá trị maxsplit lên 2 và xem cách phân chia xảy ra trong ví dụ dưới đây.

Như trong ví dụ trước, giá trị maxsplit xác định số lần phân tách được thực hiện. Chúng tôi nhận được ba khối, chia tách sau lần xuất hiện đầu tiên và thứ hai của khoảng trắng.

#3. Điều gì xảy ra nếu bạn đặt maxsplit thành giá trị lớn hơn số lần xuất hiện của dấu tách?

py_str = "There, are, only, 4, commas"
py_str.split(maxsplit=8)

# Output
['There,', 'are,', 'only,', '4,', 'commas']

Trong ô mã bên dưới, chúng tôi đặt maxsplit thành 8khi chuỗi chỉ chứa bốn dấu phẩy.

Ở đây, phương thức split chia py_str thành cả bốn lần xuất hiện của dấu phẩy. Ngay cả khi bạn cố đặt maxsplit thành một giá trị nhỏ hơn -1hãy cùng nói nào -7quá trình phân tách sẽ được thực hiện trên tất cả các phiên bản của trình phân tách.

Sau đó, hãy thu thập mọi thứ chúng ta đã học và sử dụng cả hai tham số sep maxsplit.

Tách chuỗi python thành nhiều đoạn trong dấu phân cách

py_str = "Chunk#1, Chunk#2, I'm one large Chunk#3, even though I contain a ,"
py_str.split(sep = ',',maxsplit=2)

# Output
['Chunk#1', ' Chunk#2', " I'm one large Chunk#3, even though I contain a ,"]

#1. Giả sử chúng ta cần chia py_str thành ba phần sau dấu phẩy (,). Để làm điều này, chúng ta có thể đặt sep thành ‘,’ và maxsplit thành 2 trong lời gọi phương thức.

Như bạn có thể thấy ở đầu ra, sự phân tách xảy ra hai lần trong hai lần xuất hiện đầu tiên của dấu tách.

#2. Dấu phân cách sep không phải lúc nào cũng phải là một ký tự đặc biệt. Nó có thể là một chuỗi các ký tự đặc biệt, chẳng hạn như dấu gạch dưới kép mà chúng tôi đã sử dụng trước đó hoặc thậm chí là một chuỗi con.

py_str = "You need to learn data structures, learn algorithms, and learn more!"
py_str.split(sep = 'learn',maxsplit=2)

# Output
['You need to ', ' data structures, ', ' algorithms, and learn more!']

Hãy đặt chuỗi ‘learning’ là sep và xem cách phân tách xảy ra đối với các giá trị maxsplit khác nhau. Ở đây chúng tôi đặt maxsplit thành 2.

py_str = "You need to learn data structures, learn algorithms, and learn more!"
py_str.split(sep = 'learn',maxsplit=-1)

# Output
['You need to ', ' data structures, ', ' algorithms, and ', ' more!']

#3. Nếu bạn muốn phân tách py_str trên tất cả các phiên bản của “học”, chúng ta có thể gọi phương thức .split() này bằng cách đặt sep = “học” – không có tham số maxsplit. Điều này tương đương với việc đặt rõ ràng giá trị maxsplit thành -1như được hiển thị trong ô mã bên dưới.

Ta thấy phép chia đó xảy ra trong mọi trường hợp “học”.

gói

Tôi hy vọng bây giờ bạn đã hiểu cách sử dụng phương thức .split() với chuỗi Python.

  • Dưới đây là một bản tóm tắt của hướng dẫn này:
  • Phương thức .split() tích hợp sẵn của Python chia một chuỗi thành một danh sách các chuỗi.
  • Sử dụng string.split() để tách một chuỗi thành tất cả các lần xuất hiện của dấu tách mặc định, khoảng trắng.

Sử dụng string.split(sep,maxsplit) để chia chuỗi maxsplit số lần sau khi xuất hiện dấu tách sep. Danh sách kết quả bao gồm maxsplit+1 phần tử.

Trong bước tiếp theo, bạn có thể tìm hiểu cách kiểm tra xem các chuỗi python là palindromes hay đảo chữ cái.

Mục lục