Bài 3.4. Tránh lỗi chỉ mục khi làm việc với List

Bài 3.4. Tránh lỗi chỉ mục khi làm việc với List
Có một loại lỗi phổ biến mà bạn sẽ thấy khi làm việc với danh sách lần đầu tiên. Giả sử bạn có một danh sách với ba mục, và bạn yêu cầu mục thứ tư:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[3])
Ví dụ này dẫn đến lỗi chỉ mục:
Traceback (most recent call last):
File "motorcycles.py", line 2, in <module>
print(motorcycles[3])
^^^^^^^^^^^^
IndexError: list index out of range
Python cố gắng cung cấp cho bạn mục ở chỉ số 3. Nhưng khi nó tìm kiếm trong danh sách, không có mục nào trong motorcycles có chỉ số 3. Do tính chất lệch một của việc đánh chỉ số trong danh sách, lỗi này là điển hình. Mọi người nghĩ rằng mục thứ ba là mục số 3, vì họ bắt đầu đếm từ 1. Nhưng trong Python, mục thứ ba là số 2, vì nó bắt đầu đánh chỉ số từ 0.
Lỗi chỉ mục có nghĩa là Python không thể tìm thấy một mục ở chỉ số bạn yêu cầu. Nếu lỗi chỉ mục xảy ra trong chương trình của bạn, hãy thử điều chỉnh chỉ số bạn đang yêu cầu lên một. Sau đó chạy lại chương trình để xem kết quả có đúng không.
Hãy nhớ rằng bất cứ khi nào bạn muốn truy cập mục cuối cùng trong một danh sách, bạn nên sử dụng chỉ số -1. Điều này sẽ luôn hoạt động, ngay cả khi danh sách của bạn đã thay đổi kích thước kể từ lần cuối bạn truy cập nó:
motorcycles = ['honda', 'yamaha', 'suzuki']
print(motorcycles[-1])
Chỉ số -1 luôn trả về mục cuối cùng trong danh sách, trong trường hợp này là giá trị 'suzuki':
suzuki
Cách tiếp cận này chỉ gây ra lỗi khi bạn yêu cầu mục cuối cùng từ một danh sách trống:
motorcycles = []
print(motorcycles[-1])
Không có mục nào trong motorcycles, vì vậy Python trả về một lỗi chỉ mục khác:
Traceback (most recent call last):
File "motorcycles.py", line 3, in <module>
print(motorcycles[-1])
^^^^^^^^^^^^
IndexError: list index out of range
Nếu lỗi chỉ mục xảy ra và bạn không thể tìm ra cách giải quyết, hãy thử in danh sách của bạn hoặc chỉ in độ dài của danh sách. Danh sách của bạn có thể trông rất khác so với bạn nghĩ, đặc biệt nếu nó đã được quản lý động bởi chương trình của bạn. Nhìn thấy danh sách thực tế, hoặc số lượng mục chính xác trong danh sách của bạn, có thể giúp bạn giải quyết các lỗi logic như vậy.
Comments