Cấu trúc dữ liệu list¶
Tóm lược nội dung
Bài này trình bày đôi nét về cấu trúc dữ liệu list của Python.
Khái quát về list¶
Đặt vấn đề¶
Khi xử lý bảng điểm môn Tin học của một lớp gồm 30 học sinh, việc khai báo 30 biến có vẻ không ổn. Thử xem đoạn mã khai báo sau đây bất tiện như thế nào.
Nếu số học sinh nhiều hơn, chẳng hạn 500 học sinh cả khối, thì việc khai báo từng biến là hoàn toàn bất khả thi.
May thay, các ngôn ngữ lập trình đều có hỗ trợ những cấu trúc dữ liệu giúp xử lý bảng điểm như trên, đối với Python là list.
Khái niệm¶
Cấu trúc dữ liệu list
list là một cấu trúc dữ liệu (1) của Python, được dùng để lưu trữ và xử lý tập hợp gồm nhiều phần tử.
listcó thể xem là kiểu dữ liệu hoặc cấu trúc dữ liệu tuỳ góc nhìn.
list còn được gọi bằng thuật ngữ danh sách.
Ưu điểm¶
Các phần tử trong cùng một list có thể có kiểu dữ liệu khác nhau, chẳng hạn phần tử này kiểu int, phần tử kia kiểu float, một phần tử khác kiểu bool, thậm chí một phần tử khác nữa kiểu list.
Hạn chế¶
Tốc độ xử lý của list không nhanh bằng mảng truyền thống trong những ngôn ngữ lập trình khác như C++, Java.
Thao tác cơ bản với list¶
Khởi tạo¶
Để khởi tạo danh sách, ta liệt kê các phần tử trong cặp ngoặc vuông [ ], phân cách nhau bằng dấu phẩy ,.
Ví dụ:
Dòng lệnh 3 khởi tạo danh sách scores bằng cách liệt kê phần tử. Mỗi phần tử là điểm số bài kiểm tra môn Tin học của một bạn.
Chạy đoạn mã trên, kết quả như sau:
Để khởi tạo danh sách rỗng, ta có thể viết: scores = []
Lấy số phần tử¶
Để lấy số phần tử (1) của danh sách, ta dùng hàm len().
- Khi nói "số phần tử", người ta thường hiểu là "số lượng phần tử".
Ví dụ:
Dòng lệnh 6 lấy số phần tử của danh sách scores rồi gán cho biến n.
Chạy đoạn mã trên, kết quả như sau:
Truy xuất phần tử¶
Phần tử trong list
Mỗi phần tử trong danh sách gồm có hai yếu tố: chỉ số và giá trị.
Chỉ số được đánh thứ tự từ 0 đến n - 1. Cụ thể:
- Chỉ số của phần tử đầu tiên là
0. - Chỉ số của phần tử tiếp theo là
1. - Chỉ số của phần tử tiếp theo nữa là
2. - Chỉ số của phần tử cuối cùng là
n - 1, vớinlà số phần tử của danh sách.
Chỉ số còn được gọi là vị trí.
Để truy xuất giá trị của một phần tử, ta viết chỉ số của phần tử đó trong cặp ngoặc vuông [ ].
Ví dụ:
Dòng lệnh 6 và 12 lần lượt in ra phần tử đầu tiên và cuối cùng của dành sách.
Chạy đoạn mã trên, kết quả như sau:
Duyệt danh sách¶
Trong cùng một danh sách, các phần tử thường được xử lý tương tự nhau. Cho nên, các thao tác xử lý sẽ được lặp nhiều lần. Do đó, ta có thể sử dụng vòng lặp khi làm việc với danh sách.
Với vòng lặp for, ta có hai cách duyệt danh sách (1):
-
Vẫn còn cách duyệt thứ ba là sử dụng
enumerate. -
Sử dụng chỉ số của phần tử
- Sử dụng toán tử
in
Sử dụng chỉ số:
Ví dụ:
Dòng lệnh 9 và 10 duyệt danh sách scores bằng chỉ số để in ra tất cả điểm số. Mỗi điểm số nằm trên một dòng.
Chạy đoạn mã trên, kết quả như sau:
Sử dụng toán tử in:
Ví dụ:
Dòng lệnh 6 và 7 duyệt danh sách bằng toán tử in để in ra tất cả điểm số trên cùng một dòng.
Chạy đoạn mã trên, kết quả như sau:
Mã nguồn¶
Code đầy đủ được đặt tại:
Sơ đồ tóm tắt¶
Some English words¶
| Vietnamese | Tiếng Anh |
|---|---|
| chỉ số | index |
| danh sách | list |
| dấu ngoặc vuông | square bracket(s) |
| dấu phẩy | comma |
| duyệt | iterate |
| giá trị | value |
| phần tử | element, item |
| phân cách, ký tự phân cách | delimit, delimiter |