Python cung cấp kiểu dữ liệu bất biến gọi là tuple. Trong bài viết này, chúng ta sẽ tìm hiểu về đóng gói (packing) và giải nén (unpacking) kiểu tuple trong Python 3.x hoặc các phiên bản trước đó.
Đóng gói và Giải nén Tuple
Python cung cấp công cụ gán tuple rất mạnh mẽ, ánh xạ các đối số bên tay phải vào các đối số bên tay trái. Hành động ánh xạ này được gọi là giải nén (unpacking) một tuple các giá trị thành biến thông thường. Trong khi đó, trong đóng gói (packing), chúng ta đặt các giá trị vào một tuple thông thường bằng gán thông thường.
Bây giờ hãy xem triển khai của nó:
Ví dụ
# Đóng gói biến tuple dưới một tên biến
tup = ("Tutorialspoint", "Python", "Giải nén tuple")
# Đóng gói biến tuple thành nhóm đối số
(website, language, topic) = tup
# In tên trang web
print(website, "\t", language, "", topic)
Kết quả
Tutorialspoint Python Giải nén tuple
Trong quá trình giải nén tuple, tổng số biến bên tay trái phải tương đương với tổng số giá trị trong tuple cho trước tup.
Python cung cấp cú pháp để truyền đối số tùy chọn (*arguments) cho việc giải nén tuple độ dài tùy ý. Tất cả giá trị sẽ được gán cho mỗi biến theo thứ tự chỉ định và tất cả giá trị còn lại sẽ được gán cho *arguments. Hãy xem code sau.
Ví dụ
# Đóng gói biến tuple dưới một tên biến
tup = ("Tutorialspoint", "Python", "3.x.", ":Cấu trúc dữ liệu", "Giải nén tuple")
# Đóng gói biến tuple thành nhóm đối số
(website, *language, topic) = tup
# In tên trang web
print(website, "\t", *language, "", topic)
Kết quả
Tutorialspoint Python 3.x. :Cấu trúc dữ liệu Giải nén tuple
Trong Python, tuple có thể được giải nén bằng hàm: trong hàm tuple được truyền và trong hàm, giá trị được giải nén thành biến thông thường. Code sau giải thích cách xử lý số lượng đối số tùy ý.
"*_" được dùng để chỉ định số lượng đối số tùy ý trong tuple.
Ví dụ
# Đóng gói biến tuple dưới một tên biến
tup = ("Tutorialspoint", "Python", "3.x.", "Cấu trúc dữ liệu:", "Giải nén tuple")
# Giải nén biến tuple thành nhóm đối số và bỏ qua đối số không mong muốn
(website, *_, typ, topic) = tup
# In tên trang web
print(website, "\t", typ, "", topic)
Kết quả
Tutorialspoint Cấu trúc dữ liệu: Giải nén tuple
Trong trường hợp chúng ta muốn bỏ qua chỉ một đối số, chúng ta có thể thay thế "*_" bằng "_".
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu cách chúng ta có thể đóng gói và giải nén tuple theo nhiều cách khác nhau.