Hướng dẫn dùng split 2 python

Python là ngôn ngữ lập trình có nhiều kiểu dữ liệu khác nhau trong đó bao gồm các chuỗi – string. Mặc dù chuỗi là một thành phần bất biến, chúng ta vẫn có thể thực hiện thao tác trên một chuỗi string sử dụng hàm split. Hàm này sẽ chia nhỏ các chuỗi lớn thành các chuỗi nhỏ hơn sử dụng các tham số khác nhau. Trong bài viết này ta sẽ tìm hiểu cách sử dụng hàm split trong Python.

  • Vòng Lặp Trong Python
  • List Trong Python
  • Các Kiểu Dữ Liệu Trong Python
  • Mảng Trong Python
  • Biến Trong Python

Danh Mục Bài Viết

I. Cắt Chuỗi Trong Python Sử Dụng Hàm Nào

Hướng dẫn cách cắt chuỗi trong python. Bạn sẽ học được cách cắt (slice) một chuỗi thành các chuỗi nhỏ hơn bằng cách dùng chức năng cắt (slice) trong python sau bài học này.

Để cắt (slice) chuỗi trong python , chúng ta sử dụng chức năng cắt (slice) trong python hay còn gọi là slice string python như sau:

Cú pháp cắt (slice) chuỗi trong python

Chúng ta sẽ chỉ định vị trí bắt đầu cắt chuỗi và vị trí kết thúc từ chuỗi ban đầu để lấy chuỗi con ra, theo cú pháp dưới đây:

str [ vị trí bắt đầu cắt : vị trí kết thúc cắt ]

Trong đó:

  • str là chuỗi cần cắt
  • vị trí bắt đầu cắt là index của ký tự bắt đầu cắt chuỗi
  • vị trí kết thúc cắt là index của ký tự kết thúc cắt chuỗi cộng thêm 1 đơn vị

🌟 Cần chú ý do chuỗi được cắt ra không bao gồm ký tự ở vị trí kết thúc cắt, nên khi chỉ định vị trí kết thúc cắt chúng ta cần cộng thêm 1 đơn vị. Như thế, chuỗi cắt ra sẽ bao gồm cả ký tự ở vị trí kết thúc cắt.

🌟 Về cách đánh số index của ký tự trong chuỗi, bắt đầu đánh số index của ký tự ngoài cùng tay trái bằng 0, sau đó cộng thêm 1 và tiến dần về phía bên phải. Lưu ý là đánh số index bắt đầu từ 0 chứ không phải từ 1 nhé.

Hướng dẫn dùng split 2 python

Cắt Chuỗi Trong Python Sử Dụng Hàm Nào

II. Split Trong Python Là Gì

Chuỗi trong Python đại diện cho các giá trị ký tự unicode. Python không có kiểu dữ liệu ký tự, vì vậy kiểu ký tự đơn cũng được coi là một chuỗi.

Chúng ta sử dụng các ngoặc đơn hoặc ngoặc đôi để khai báo dữ liệu. Để truy cập một chuỗi, chúng ta sử dụng chỉ mục và dấu ngoặc vuông. Vì các chuỗi là các thành phần bất biến nên chúng ta không thể thực hiện thay đổi sau khi đã khai báo chúng.

Ví dụ:

name = "Edureka"

print(name[0])

Output: E

Mặc dù không thể thay đổi chuỗi sau khi thực hiện khai báo, ta vẫn có thể chia tách chuỗi string trong Python.

Hướng dẫn dùng split 2 python
Split Trong Python Là Gì

III. Cú Pháp Của Split() Trong Python

Hàm split() trong Python chia chuỗi theo delimeter đã cho (là space nếu không được cung cấp) và trả về danh sách các chuỗi con; nếu bạn cung cấp đối số num thì chia chuỗi thành num + 1 chuỗi con.

Cú pháp của split() trong Python:

str.split(str="", num=string.count(str))

Chi tiết về tham số:

  • str: Đây là bất kỳ phân chia chuỗi – delimeter nào, mặc định là khoảng trống.
  • num: Số chuỗi con num + 1 được tạo ra.

Ví dụ sau minh họa cách sử dụng của split() trong Python.

str1 = "Line1-Python Line2-Java Line3-PHP";
 
print("Test 1:");
arr1 = str1.split();
for arr in arr1:
    print (arr);
 
print("\nTest 2:");
arr1 = str1.split(' ', 1);
for arr in arr1:
    print (arr);

Chạy chương trình Python trên sẽ cho kết quả:

Test 1:
Line1-Python
Line2-Java
Line3-PHP

Test 2:
Line1-Python
Line2-Java Line3-PHP
Hướng dẫn dùng split 2 python
Cú Pháp Của Split() Trong Python

IV. Hàm Join Và Split Trong Python

Hàm join() trong Python nối chuỗi các biểu diễn chuỗi của các phần tử trong dãy seq thành một chuỗi.

Cú pháp của join() trong Python:

str.join(sequence)

Các tham số:

  • sequence: Đây là dãy các phần tử để được kết hợp.

Ví dụ sau minh họa cách sử dụng của join() trong Python.

s = ", "
seq = ("Java", "Python", "PHP")
print (s.join(seq))

Chạy chương trình Python trên sẽ cho kết quả −

Java, Python, PHP
Hướng dẫn dùng split 2 python
Hàm Join Và Split Trong Python

V. Tách Chuỗi Trong Python

Hướng dẫn cách tách chuỗi trong python. Bạn sẽ học được cách tách chuỗi trong python bằng các phương thức có sẵn như split và splitlines trong bài viết này.

Tách chuỗi trong python bằng phương thức split

Chúng ta sử dụng phương thức split để tách chuỗi trong python bằng một ký tự phân cách và thu về kết quả là một list có các phần tử là các chuỗi nhỏ vừa được tách ra, với cú pháp sau đây:

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.

Cách sử dụng phương thức split thực tiễn giống như ví dụ sau:

Tách chuỗi trong python bằng 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()

Ví dụ 1

name = "Edureka"

print(name[0])
0

Ở ví dụ này, ký tự phân tách được rút gọn nên python mặc định nó là ký tự trống. 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

name = "Edureka"

print(name[0])
1

Ở 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

name = "Edureka"

print(name[0])
2

Ở 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

Tách chuỗi trong python bằng 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

name = "Edureka"

print(name[0])
3

Chúng ta có thể chỉ định sep là một ký tự, hay một chuỗi ký tự đều được.

Ví dụ 1

name = "Edureka"

print(name[0])
4

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

name = "Edureka"

print(name[0])
5

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:

name = "Edureka"

print(name[0])
6

Tách chuỗi trong python bằng phương thức split chỉ định số lần tách lớn nhất

Chúng ta chỉ định ký tự phân cách lớn nhất maxsplit như cú pháp dưới đây

name = "Edureka"

print(name[0])
7

Khi đó chuỗi sẽ được tách với số lần lớn nhất bằng với maxsplit, như các ví dụ dưới đây:

name = "Edureka"

print(name[0])
8

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.

Tách chuỗi trong python bằng phương thức splitlines

Chúng ta sử dụng phương thức splitlines để tách chuỗi trong python bằng một ký tự xuống dòng nếu như ký tự xuống dòng này tồn tại trong chuỗi, và thu về kết quả là một list có các phần tử là các chuỗi nhỏ vừa được tách ra, với cú pháp sau đây:

name = "Edureka"

print(name[0])
9

Các ký tự xuống dòng sẽ không được bao gồm trong danh sách kết quả trừ khi chúng ta chỉ định giá trị keepends = True

Các ký tự trong chuỗi được coi là ký tự xuống dòng như bảng sau đây:

str.split(str="", num=string.count(str))
0

Hãy cùng xem vài ví dụ đơn giản sau đây:

Ví dụ 1: tách chuỗi chứa ký tự xuống dòng \n

str.split(str="", num=string.count(str))
1

Ví dụ 2: tách chuỗi nhiều dòng tạo bởi dấu nháy tam “””

str.split(str="", num=string.count(str))
2

Trong ví dụ này, chúng ta tách một chuỗi nhiều dòng tạo bởi dấu nháy tam, và ở phần đầu chuỗi có chứa cả chuỗi thoát \. Bạn có thể thấy cả chuỗi thoát \ lẫn chỗ xuống dòng trong chuỗi nhiều dòng đều được tách ra như nhau.

Ví dụ 3: tách chuỗi chứa ký tự xuống dòng \n với giá trị keepends = True

str.split(str="", num=string.count(str))
3

Bạn có thể thấy khi chỉ định giá trị keepends = True thì ký tự xuống dòng như \n sẽ được bao gồm trong danh sách kết quả trả về.

Hướng dẫn dùng split 2 python
Tách Chuỗi Trong Python

VI. Tách Số Và Chữ Trong Chuỗi Python

Hướng dẫn cách tách số trong chuỗi python. Bạn sẽ học được cách tìm số trong chuỗi python cũng như các phương pháp tách số trong chuỗi bằng cách sử dụng Regular Expression trong Python sau bài học này.

Chúng ta có 5 phương pháp sử dụng Regular Expression để tìm số trong chuỗi python cũng như tách số trong chuỗi python như sau:

  • Hàm số re.findall() : tìm và tách số trong chuỗi python dưới dạng một list
  • Hàm số re.findall() : tìm và tách dãy số trong chuỗi python dưới dạng một list
  • Hàm số re.sub() : tìm và tách số trong chuỗi python dưới dạng một chuỗi
  • Hàm số re.search(): tìm và tách số đầu tiên trong chuỗi python
  • Hàm số re.search(): tìm và tách dãy số đầu tiên trong chuỗi python

Regular Expression trong Python

Regular Expression trong Python, hay còn gọi là biểu thức chính quy với cách viết tắt là RegEx trong python, là một phương thức mô phỏng một chuỗi ký tự theo những quy tắc cú pháp nhất định. Chúng ta thường sử dụng Regular Expression khi muốn tìm kiếm , lấy ra hoặc thay thế một chuỗi ký tự có cấu trúc chỉ định trong Python.

Đây là một kỹ thuật thường được sử dụng khi xử lý một lượng lớn văn bản trong một chương trình.

Để sử dụng regular expression trong python, chúng ta cần sử dụng tới module re bằng cách import re trong python vào chương trình.

Và nếu bạn biết cách sử dụng, bạn có thể dễ dàng tìm kiếm cũng như tách số trong chuỗi python bằng regular expression trong python.

import re trong python

Chúng ta sử dụng lệnh import để import re trong python và có thể sử dụng tất cả các hàm số và phương thức được cài sẵn của nó trong chương trình như sau:

str.split(str="", num=string.count(str))
4

Sau đây, chúng ta sẽ cùng tìm hiểu các cách tách số trong chuỗi bằng cách sử dụng các hàm trong regex python.

Tách số trong chuỗi python dưới dạng một list | hàm re.findall Python

Chúng ta tìm số trong chuỗi python cũng như tách từng số trong chuỗi đó và thu về kết quả dưới dạng một list bằng cách sử dụng hàm re.findall() trong module re trong python.

Cú pháp sử dụng hàm re.findall() để tách số trong python như sau:

str.split(str="", num=string.count(str))
5

Trong đó:

  • re.findall dùng để gọi hàm
  • str là chuỗi cần tách số ra.
  • r’\d’ là một chuỗi thô được sử dụng như mẫu RegEx trong hàm, có tác dụng biểu thị một chữ số.

Ví dụ cụ thể, chúng ta tách số trong chuỗi python dưới dạng một list như sau:

str.split(str="", num=string.count(str))
6

Lưu ý là chúng ta tách số ra từ chuỗi ban đầu và lấy kết quả, chứ không làm thay đổi chuỗi ban đầu nhé.

str.split(str="", num=string.count(str))
7

Sau khi tách các số từ chuỗi và thu về kết quả dưới dạng list, chúng ta có thể nối các phần tử trong list và chuyển kết quả về dạng chuỗi bằng cách sử dụng hàm join trong python. Ví dụ:

str.split(str="", num=string.count(str))
8

Tách dãy số trong chuỗi python dưới dạng một list | hàm re.findall() Python

Ở phần trên chúng ta đã biết cách tìm số trong chuỗi python cũng như tách từng số trong chuỗi và thu về kết quả dưới dạng một list rồi. Với cách này, thì các số tồn tại trong chuỗi sẽ được coi là riêng biệt và chúng cũng sẽ được tách riêng rẽ với nhau. Ví dụ như dãy ‘2021’ sẽ được tách ra thành ‘2’,’0’,’2’,’1’.

Tuy nhiên cũng có những trường hợp mà chúng ta cần tìm cũng như tách và thu về từng dãy số trong chuỗi, ví dụ như tách năm, tháng , ngày ra khỏi chuỗi chẳng hạn. Khi đó, chúng ta cũng sử dụng hàm re.findall() python và thay thế mẫu RegEx từ r’\d’ sang r’\d+’ như sau.

str.split(str="", num=string.count(str))
9

Ví dụ cụ thể, chúng ta tách dãy số trong chuỗi python dưới dạng một list như sau:

str1 = "Line1-Python Line2-Java Line3-PHP";
 
print("Test 1:");
arr1 = str1.split();
for arr in arr1:
    print (arr);
 
print("\nTest 2:");
arr1 = str1.split(' ', 1);
for arr in arr1:
    print (arr);
0

Sau đó, chúng ta có thể truy cập phần tử trong list qua index, và thu về kết số mong muốn. Ví dụ như chúng ta lấy số ngày, tháng, năm từ list kết quả ở trên như sau:

str1 = "Line1-Python Line2-Java Line3-PHP";
 
print("Test 1:");
arr1 = str1.split();
for arr in arr1:
    print (arr);
 
print("\nTest 2:");
arr1 = str1.split(' ', 1);
for arr in arr1:
    print (arr);
1

Tách số trong chuỗi python dưới dạng một chuỗi | hàm re.sub() Python

Chúng ta tìm số trong chuỗi python cũng như tách số trong chuỗi đó và thu về kết quả dưới dạng một chuỗi bằng cách sử dụng hàm re.sub() trong module re trong python.

Hàm re.sub() trong Python vốn được sử dụng để tìm một chuỗi ký tự có định dạng chỉ định và thay thế chuỗi đó bằng một chuỗi khác. Ứng dụng re.sub(), chúng ta có thể tìm ra tất cả các ký tự trong chuỗi, sau đó xóa hết chúng đi. Kết quả sẽ chỉ còn chữ số sẽ ở lại, qua đó chúng ta có thể tách số trong chuỗi python.

Cú pháp sử dụng hàm re.sub() để tách số trong python như sau:

str1 = "Line1-Python Line2-Java Line3-PHP";
 
print("Test 1:");
arr1 = str1.split();
for arr in arr1:
    print (arr);
 
print("\nTest 2:");
arr1 = str1.split(' ', 1);
for arr in arr1:
    print (arr);
2

Trong đó:

  • re.sub dùng để gọi hàm
  • str là chuỗi cần tách số ra.
  • r’\D’ là một chuỗi thô được sử dụng như mẫu RegEx trong hàm, có tác dụng biểu thị một ký tự.
  • Ký tự trắng ” dùng để thay thế các ký tự tồn tại trong chuỗi str

Ví dụ cụ thể, chúng ta tách số trong chuỗi python dưới dạng một chuỗi như sau:

str1 = "Line1-Python Line2-Java Line3-PHP";
 
print("Test 1:");
arr1 = str1.split();
for arr in arr1:
    print (arr);
 
print("\nTest 2:");
arr1 = str1.split(' ', 1);
for arr in arr1:
    print (arr);
3

Lưu ý là chúng ta tách số ra từ chuỗi ban đầu và lấy kết quả, chứ không làm thay đổi chuỗi ban đầu nhé.

str1 = "Line1-Python Line2-Java Line3-PHP";
 
print("Test 1:");
arr1 = str1.split();
for arr in arr1:
    print (arr);
 
print("\nTest 2:");
arr1 = str1.split(' ', 1);
for arr in arr1:
    print (arr);
4

Tách số đầu tiên trong chuỗi python | hàm re.search() python

Chúng ta tìm và tách số đầu tiên xuất hiện trong chuỗi python bằng cách sử dụng hàm re.search() trong module re trong python.

Hàm re.search() trong Python vốn được sử dụng để tìm một chuỗi ký tự có định dạng chỉ định và trả về kết quả khớp đầu tiên. Ứng dụng re.search(), chúng ta có thể tìm và tách ra số đầu tiên trong chuỗi python.

Cú pháp sử dụng hàm re.search() để tách số trong python như sau:

str1 = "Line1-Python Line2-Java Line3-PHP";
 
print("Test 1:");
arr1 = str1.split();
for arr in arr1:
    print (arr);
 
print("\nTest 2:");
arr1 = str1.split(' ', 1);
for arr in arr1:
    print (arr);
5

Trong đó:

  • re.search dùng để gọi hàm
  • str là chuỗi cần tách số ra.
  • r’\d’ là một chuỗi thô được sử dụng như mẫu RegEx trong hàm, có tác dụng biểu thị một chữ số.

Lưu ý là kết quả của Hàm re.search() trong Python không phải là chuỗi kết quả mà là một match object chứa chuỗi đó. Để lấy ra chuỗi kết quả ra từ trong match object, chúng ta sẽ cần sử dụng thêm phương thức group() trong Python.

Ví dụ cụ thể, chúng ta tách số đầu tiên trong chuỗi python như sau:

str1 = "Line1-Python Line2-Java Line3-PHP";
 
print("Test 1:");
arr1 = str1.split();
for arr in arr1:
    print (arr);
 
print("\nTest 2:");
arr1 = str1.split(' ', 1);
for arr in arr1:
    print (arr);
6

Tách dãy số đầu tiên xuất hiện trong chuỗi python | hàm re.search() python

Tương tự như với cách tách số đầu tiên xuất hiện trong chuỗi, chúng ta cũng sử dụng hàm re.search() để tìm và tách dãy số đầu tiên xuất hiện trong chuỗi python. Khi đó, chúng ta thay thế mẫu RegEx sử dụng trong hàm re.search() từ r’\d’ sang r’\d+’ như sau.

str1 = "Line1-Python Line2-Java Line3-PHP";
 
print("Test 1:");
arr1 = str1.split();
for arr in arr1:
    print (arr);
 
print("\nTest 2:");
arr1 = str1.split(' ', 1);
for arr in arr1:
    print (arr);
7

Lưu ý là kết quả của Hàm re.search() trong Python không phải là chuỗi kết quả mà là một match object chứa chuỗi đó. Để lấy ra chuỗi kết quả ra từ trong match object, chúng ta sẽ cần sử dụng thêm phương thức như start(), end(), span(), group() trong Python.

Ví dụ cụ thể, chúng ta tách dãy số đầu tiên trong chuỗi python như sau:

str1 = "Line1-Python Line2-Java Line3-PHP";
 
print("Test 1:");
arr1 = str1.split();
for arr in arr1:
    print (arr);
 
print("\nTest 2:");
arr1 = str1.split(' ', 1);
for arr in arr1:
    print (arr);
8

Sau đó, chúng ta có thể lấy vị trí bắt đầu và kết thúc của dãy số trong chuỗi bằng cách dùng phương thức start() và end() như sau: