Các hàm xử lý trong tuple
Bài này chúng ta sẽ tiếp tục tìm hiểu về kiểu dữ liệu thứ 4 trong ngôn ngữ lập trình Python, đó là kiểu Tuple. Show
Tuple trong Python là một kiểu dữ liệu dùng để lưu trữ các đối tượng không thay đổi về sau (giống như hằng số). Còn lại thì cách lưu trữ của nó cũng khá giống như kiểu dữ liệu list mà bài trước chúng ta đã được tìm hiểu. Để khai báo một enum thì mọi người sử dụng cú pháp sau:
Trong đó, VD: Mình sẽ khai báo 1 Tuple chứa các ngày trong tuần.
Nếu bạn khai báo 1 biến chứa các giá trị mà không được bao quang bởi dấu VD:
Và nếu như bạn muốn khai báo 1 tuple trống thì bạn chỉ cần khai báo như sau:
Còn nếu như tuple của bạn chỉ chứa duy nhất một giá trị thì bắt buộc bạn phải thêm một dấu VD:
2, Truy cập đến các phần tử trong Tuple.Để truy cập đến các phần tử trong Tuple thì các bạn thực hiện tương tự như đối với chuỗi và list.
VD: Mình sẽ truy cập đến các phần tử trong tuple
Và nếu như bạn muốn lấy ra một tuple con trong tuple hiện tại thì bạn có thể sử dụng cú pháp sau (giống với list và string):
Trong đó:
VD:
3, Các tác vụ khác trên Tuple.Xóa Tuple.Như mình đã nói ở trên thì khi một tuple đã được khai báo giá trị thì chúng ta không thể sửa đổi hay xóa các giá trị đó được mà chúng ta chỉ có thể xóa cả tuple đi được thôi. Để xóa một hay nhiều tuple thì chúng ta sử dụng hàm del . VD: Mình sẽ xóa Tuple
Thêm mới phần tử.Thực ra đây chỉ là cách lách luật thôi, chứ một tuple đã được khai báo thì chúng ta chỉ được gọi và không được sửa đổi hay thêm mới bất cứ một cái gì cả. Nhưng chúng ta có thể tạo ra được một tuple mới từ các tuple đã có bằng biểu thức + hai tuple. VD: Mình sẽ ghép 2 tuple day1 và day2 thành tuple day.
4, Tuple lồng.Cũng giống như list, bạn cũng có thể khai báo các tuple lồng nhau. VD:
Và bạn có thể lồng bao nhiêu cấp cũng được. Và lồng bất cứ một kiểu dữ liệu nào cũng ok. 5, Lời kết.Nếu như các bạn đã tìm hiểu qua các ngôn ngữ khác như c#, java thì chắc các bạn cũng thấy nó khá giống với Dẫn nhậpTrong các bài trước, Kteam đã giới thiệu đến bạn KIỂU DỮ LIỆU LIST, một container tuyệt vời trong Python Ở bài này Kteam sẽ giới thiệu tới bạn một container khác đó chính KIỂU DỮ LIỆU TUPLE trong Python Nội dungĐể đọc hiểu bài này tốt nhất bạn cần:
Bạn và Kteam sẽ cùng tìm hiểu những nội dung sau đây
Giới thiệu về Tuple trong PythonTuple là một container cũng được sử dụng rất nhiều trong các chương trình Python không thua kém gì List. (List đã được giới thiệu trong bài KIỂU DỮ LIỆU LIST TRONG PYTHON) Một Tuple gồm các yếu tố sau:
Ví dụ:
Cách khởi tạo TupleSử dụng cặp dấu ngoặc () và đặt giá trị bên trongCú pháp:
Ví dụ:
Bạn hãy chú ý khi khởi tạo tuple với một giá trị.
Vì sao khi khởi tạo một Tuple với một phần tử thì kiểu kiểu dữ liệu của Tuple đó lại là kiểu dữ liệu của phần tử duy nhất đó?
Vì sao lại phải xem là một giá trị?
Thế nên, trường hợp đó không thể tính là một Tuple. Do đó, khi muốn khởi tạo một Tuple chỉ duy nhất một phần tử, ta phải thêm dấu `,` vào sau giá trị đó, để báo cho Python biết, đây là Tuple.
Sử dụng Tuple ComprehensionVới Tuple thì khái niệm Comprehension này không được áp dụng
Mà đó được coi là Generator Expression (Kteam sẽ giới thiệu trong tương lai). Đối tượng được tạo từ Generator Expression cũng là một dạng iterable. Sử dụng constructor TupleCú pháp:
Công dụng: Giống hoàn toàn với việc bạn sử dụng constructor List. Khác biệt duy nhất là constructor Tuple sẽ tạo ra một Tuple.
Một số toán tử với Tuple trong PythonCác toán tử của Tuple giống với toán tử của chuỗi. Nếu bạn đọc kĩ phần này ở bài List thì bạn sẽ thấy Kteam đề cập là toán tử của List chỉ là gần giống với toán tử của chuỗi. Lí do vì sao sẽ được giải thích trong bài sự khác biệt các toán tử của hash object (immutable như chuỗi, Tuple) và unhash object (mutable như List) Toán tử +
Toán tử *
Toán tử in
Indexing và cắt Tuple trong PythonIndexing và cắt Tuple hoàn toàn tương tự như với kiểu dữ liệu List. (Nếu chưa biết về List bạn có thể tham khảo qua các bài về KIỂU DỮ LIỆU LIST TRONG PYTHON)
Thay đổi nội dung Tuple trong PythonTuple và chuỗi đều là một dạng hash object (immutable). Do đó việc bạn muốn thay đổi nội dung của nó trên lí thuyết là không.
Vì sao lại nói là trên lí thuyết? Bạn sẽ biết được ngay ở phần sau. Ma trậnNếu bạn nắm vững khái niệm này ở List. Thì xin chúc mừng bạn vì không phải đau đầu. Nó hoàn toàn tương tự.
Tuple có phải luôn luôn là một hash object?Như đã định nghĩa ở bài chuỗi, một hash object là một đối tượng bạn không thể thay đổi nội dung của nó. Và trong phần thay đổi nội dung Tuple, bạn cũng thấy ta không thể thay đổi giá trị ở bên trong Tuple. Tuy nhiên, không phải lúc nào cũng vậy.
Giá trị bên trong tuple đó là một List. Và, List là một unhash object. Suy ra, ta có thể thay đổi nội dung của nó.
Ta đã thay đổi nội dung của Tuple bằng một cách đó là thay đổi nội dung của một phần tử trong Tuple. Vì thế, một Tuple sẽ được coi là một hash object khi nó chứa các phần tử đều là hash object. Các phương thức của TuplePhương thức countCú pháp:
Công dụng: Trả về một số nguyên, chính là số lần xuất hiện của value trong Tuple.
Phương thức indexCú pháp:
Công dụng: Tương tự phương thức index của kiểu dữ liệu chuỗi.
Khi nào thì chọn Tuple thay cho List?Tuple khác List ở chỗ Tuple không cho phép bạn sửa chữa nội dung, còn List thì có. Vì đặc điểm đó, Tuple mạnh hơn List ở những điểm sau:
Những điểm trên là những điều giúp bạn có thể cân nhắc việc chọn Tuple hay List để lưu dữ dữ liệu dưới một mảng. Củng cố bài họcĐáp án bài trướcBạn có thể tìm thấy câu hỏi của phần này tại CÂU HỎI CỦNG CỐ trong bài KIỂU DỮ LIỆU LIST TRONG PYTHON – Phần 2.
Câu hỏi củng cố
Lựa chọn phương án đúng
Đáp án của phần này sẽ được trình bày ở bài tiếp theo. Tuy nhiên, Kteam khuyến khích bạn tự trả lời các câu hỏi để củng cố kiến thức cũng như thực hành một cách tốt nhất! Kết luậnBài viết này đã sơ lược cho các bạn KIỂU DỮ LIỆU TUPLE TRONG PYTHON. Ở bài sau, Kteam sẽ nói về sự khác nhau giữa toán tử ở HASH OBJECT VÀ UNHASH OBJECT. Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”. Thảo luậnNếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng. |