Cấu Trúc Dữ Liệu Python — List, Dict, Tuple Khác Nhau Ở Đâu

Tóm tắt nhanh: 3 cấu trúc dữ liệu nền tảng của Python — list (danh sách sửa được), dict (cặp khóa-giá trị), tuple (giống list nhưng không sửa được) — chính là nền tảng để hiểu DataFrame của pandas ở bài sau.
3 kiểu dữ liệu nền tảngDùng liên tục trong pandas sau nàylist, dict, tuple

Bài trước bạn học cách “ra quyết định” và “lặp lại” — nhưng lặp lại TRÊN CÁI GÌ? Đây là lúc cần biết cách Python “cất” nhiều giá trị lại với nhau.

3 cách cất dữ liệu — chọn đúng loại cho đúng việc

listSửa được, có thứ tự[“Hà Nội”, “TP.HCM”]dictCặp khóa-giá trị{“ten”: “An”, “tuoi”: 30}tupleGiống list nhưngKHÔNG sửa được
list: danh sách có thứ tự, sửa được (thêm/xóa/đổi phần tử). dict: lưu theo cặp “tên-giá trị” (không theo số thứ tự). tuple: giống list nhưng KHÔNG sửa được sau khi tạo — dùng khi chắc chắn dữ liệu không cần thay đổi.

Câu hỏi nên tự hỏi khi chọn cấu trúc: “Tôi cần lấy giá trị theo VỊ TRÍ (thứ 1, thứ 2…) hay theo TÊN (như ‘tuổi’, ‘tên’)?” — nếu theo vị trí, dùng list/tuple; nếu theo tên, dùng dict.

dict — nền tảng để hiểu DataFrame sau này

khach = {“ten”: “Nguyễn An”, “tuoi”: 35, “vip”: True}khach[“tuoi”]# Kết quả: 35 — lấy giá trị bằng TÊN, không bằng vị trí sốfor key, value in khach.items():print(key, value)In ra: ten Nguyễn An / tuoi 35 / vip True
dict lưu theo cặp “khóa: giá trị” — lấy dữ liệu bằng TÊN (khach[“tuoi”]) thay vì phải nhớ vị trí số. Đây chính là cách 1 dòng dữ liệu (như 1 khách hàng) thường được biểu diễn trước khi đưa vào pandas.

Thực tế, khi làm việc với pandas (bài sau), 1 DataFrame về bản chất giống như nhiều dict ghép lại — mỗi cột có 1 “tên” (giống khóa trong dict), và bạn lấy dữ liệu ra bằng tên cột, không cần nhớ nó là cột thứ mấy. Hiểu dict kỹ ở đây sẽ giúp học pandas nhanh hơn nhiều.

Xem thêm

Video này (tiếng Anh) thực hành chi tiết list/tuple/set — bổ sung cho phần dict vừa học ở trên.

Checklist tự kiểm tra sau bài này
  • Bạn tạo được 1 list, 1 dict, 1 tuple đơn giản và lấy được giá trị ra từ mỗi loại.
  • Bạn giải thích được vì sao tuple ‘không sửa được’ lại hữu ích trong 1 số trường hợp.
  • Bạn thấy được điểm giống nhau giữa dict và cách 1 dòng dữ liệu (DataFrame) hoạt động.
Cần nhớ

Chọn cấu trúc dữ liệu không phải bài toán “đúng/sai” — mà là chọn công cụ phù hợp với cách bạn sẽ LẤY dữ liệu ra sau này (theo vị trí hay theo tên). Suy nghĩ trước 1 chút khi chọn cấu trúc sẽ giúp code sau này dễ đọc và ít lỗi hơn.

Câu hỏi thường gặp

Vì sao cần tuple nếu list đã làm được mọi thứ tuple làm được?

Tuple đảm bảo dữ liệu KHÔNG bị vô tình sửa đổi trong lúc code chạy — hữu ích khi bạn muốn chắc chắn 1 số giá trị (như tọa độ, cấu hình cố định) không đổi.

dict có giữ đúng thứ tự các phần tử đã thêm vào không?

Từ Python 3.7 trở đi, có — dict giữ đúng thứ tự thêm vào, khác với hiểu nhầm phổ biến rằng dict hoàn toàn không có thứ tự.

Có cấu trúc dữ liệu nào khác ngoài 3 loại này không?

Có (set — tập hợp không trùng lặp) nhưng ít dùng hơn trong phân tích dữ liệu cơ bản — 3 loại list/dict/tuple là đủ để bắt đầu.

Nguồn: Wes McKinney, Python for Data Analysis (3rd ed.), Chương 3 “Built-In Data Structures, Functions, and Files” (O’Reilly, 2022). Nội dung diễn giải lại bằng lời riêng, không sao chép nguyên văn.