Kiểu dữ liệu Tuple trong Python

Lập trình Python cơ bản

5.0 (22 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 5 năm trước 111.432 lượt xem 30 bình luận
Tác giả/Dịch giả: Kteam
Học nhanh

Danh sách bài học

01. Giới thiệu ngôn ngữ lập trình Python 02. Cài đặt môi trường Python 03. Cách chạy chương trình Python 04. Cách ghi chú trong Python 05. Biến trong Python 06. Kiểu dữ liệu số trong Python 07. Kiểu dữ liệu chuỗi trong Python - Phần 1 08. Kiểu dữ liệu chuỗi trong Python - Phần 2 09. Kiểu dữ liệu chuỗi trong Python - Phần 3 10. Kiểu dữ liệu chuỗi trong Python - Phần 4 11. Kiểu dữ liệu chuỗi trong Python - Phần 5 12. Kiểu dữ liệu List trong Python - Phần 1 13. Kiểu dữ liệu List trong Python - Phần 2 14. Kiểu dữ liệu Tuple trong Python 15. Sự khác nhau về toán tử của Hashable object và Unhashable object trong Python 16. Kiểu dữ liệu Set trong Python 16. Kiểu dữ liệu Set trong Python – Phần 2 17. Kiểu dữ liệu Dict trong Python - Phần 1 18. Kiểu dữ liệu Dict trong Python - Phần 2 19. Xử lý file trong Python 20. Iteration và một số hàm hỗ trợ cho iteration object trong Python 21. Nhập xuất trong Python - Hàm xuất 22. Nhập xuất trong Python - Hàm nhập 23. Kiểu dữ liệu Boolean trong Python 24. Cấu trúc rẽ nhánh trong Python 25. Vòng lặp While trong Python 26. Vòng lặp For trong Python - Phần 1 27. Vòng lặp For trong Python - Phần 2 28. Kiểu dữ liệu Function trong Python - Sơ lược về hàm 29. Kiểu dữ liệu Function trong Python - Positional và keyword argument 30. Kiểu dữ liệu Function trong Python - Packing và unpacking arguments 31. Kiểu dữ liệu Function trong Python - Biến locals và globals 32. Kiểu dữ liệu Function trong Python - Return 33. Kiểu dữ liệu function trong Python – Yield 34. Kiểu dữ liệu function trong Python – Lambda 35. Kiểu dữ liệu Function trong Python - Functional tools 36. Kiểu dữ liệu Function trong Python - Đệ quy (recursion) 37. Giới thiệu module trong Python 38. Package trong python

Kiểu dữ liệu Tuple trong Python

Dẫn nhập

Trong 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 Python.
  • Cách khởi tạo Tuple.
  • Một số toán tử với Tuple trong Python.
  • Indexing và cắt Tuple trong Python.
  • Thay đổi nội dung Tuple trong Python.
  • Ma trận.
  • Tuple có phải luôn luôn là một Hash object?
  • Các phương thức của Tuple.
  • Khi nào thì chọn Tuple thay cho List?

Giới thiệu về Tuple trong Python

Tuple 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:

  • Được giới hạn bởi cặp ngoặc (), tất cả những gì nằm trong đó là những phần tử của Tuple.
  • Các phần tử của Tuple được phân cách nhau ra bởi dấu phẩy (,).
  • Tuple có khả năng chứa mọi giá trị, đối tượng trong Python.

Ví dụ:


Cách khởi tạo Tuple

Sử dụng cặp  dấu ngoặc () và đặt giá  trị bên trong

Cú pháp:

(<giá trị thứ nhất>, <giá trị thứ hai>, .., <giá trị thứ n – 1>, <giá trị thứ n>)

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 đó?

  • Đó là do khi bạn viết một giá trị nào đó đặt trong cặp dấu ngoặc đơn thì nó được xem là một giá trị.

Vì sao lại phải xem là một giá trị?

  • Vì khi ta tính toán, hay sử dụng cặp ngoặc () để được ưu tiên.

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 Comprehension

Vớ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 Tuple

Cú pháp:

tuple(iterable)

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 Python

Cá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 Python

Indexing 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 Python

Tuple 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ận

Nế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 Tuple

Phương thức count

Cú pháp:

<Tuple>.count(value)

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 index

Cú pháp:

<Tuple>.index(sub[, start[, end]])

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:

  • Tốc độ truy xuất của Tuple nhanh hơn so với List
  • Dung lượng chiếm trong bộ nhớ của Tuple nhỏ hơn so với List
  • Bảo vệ dữ liệu của bạn sẽ không bị thay đổi
  • Có thể dùng làm key của Dictonary (một kiểu dữ liệu sẽ được giới thiệu). Điều mà List không thể vì List là unhash object.

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ước

Bạ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.

  1. Sẽ có lỗi IndexError
  1. Không. Vì khi đó, ta phải so sánh hai List [1, 2] và ['abc', 'def']. Mà khi so sánh hai List này một cách trực tiếp. Python sẽ phải so sánh từng phần tử của mỗi hai List đó với nhau. Nhưng một bên là số, một bên là chuỗi, nên việc so sánh trực tiếp là không được.

Câu hỏi củng cố

  1.  Tìm các cách khởi tạo List hợp lệ dưới đấy
    1. tup = tuple((1,2, 3) + [3, 4])
    2. tup = (1)
    3. tup = 1
    4. tup = 1, 2
  1. Dự đoán kết quả của chương đoạn code dưới đây

Lựa chọn phương án đúng

  1. tup = (1, 2, [3, 4, 50, 60])
  2. TypeError: ‘tuple’ object does not support item assignment
  3. a và b đú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ận

Bà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ó”.


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Kiểu dữ liệu Tuple trong Python dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nế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.

Tác giả/Dịch giả

Khóa học

Lập trình Python cơ bản

Lập trình Python cơ bản

Đánh giá

5.0
22 đánh giá
Đánh giá
5
21
4
1
3
2
1
Nguyen Duc Minh Tri đã đánh giá 4 tháng trước

Tran Tan Dat đã đánh giá 8 tháng trước

tuyệt vời ông mặt trời

Việt Tiến đã đánh giá khoảng 1 năm trước

ACEtankACE đã đánh giá 2 năm trước

quá chi tiết, cảm ơn KTeam

Vo Tan Duc đã đánh giá 2 năm trước

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Huydung1985 đã bình luận 7 tháng trước

đáp án B nhé

 

asmodeusnguyen đã bình luận khoảng 1 năm trước

1. D

2. B, vì giá trị bên trong 1 tuple là ko thể thay đổi

Nahida đã bình luận 2 năm trước

1. Không có cách nào hợp lệ

2. a

builehungmanh đã bình luận 2 năm trước

1.b

builehungmanh đã bình luận 2 năm trước

2 la dap an b

 

Không có video.