Hướng dẫn dùng std tuple python
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 Show
Ở 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. |