🔍 10.3 Truy cập phần tử trong list 2 chiều
📖 Giới thiệu
Việc truy cập phần tử trong list 2 chiều sử dụng 2 chỉ số: chỉ số hàng và chỉ số cột. Hiểu cách truy cập đúng sẽ giúp bạn xử lý dữ liệu dạng bảng hiệu quả.
INFO
List 2 chiều sử dụng cú pháp list[hàng][cột] để truy cập phần tử
🧭 Cú pháp truy cập
📍 Truy cập phần tử cơ bản
python
# Tạo list 2 chiều
bang_diem = [
[8, 9, 7],
[6, 8, 9],
[9, 7, 8]
]
# Truy cập phần tử
print(bang_diem[0][0]) # 8 (hàng 0, cột 0)
print(bang_diem[1][2]) # 9 (hàng 1, cột 2)
print(bang_diem[2][1]) # 7 (hàng 2, cột 1)TIP
Chỉ số đầu tiên là hàng, chỉ số thứ hai là cột
🔄 Thay đổi giá trị
python
# Thay đổi điểm
bang_diem[0][1] = 10 # Sửa điểm hàng 0, cột 1
print(bang_diem[0]) # [8, 10, 7]
# Sửa toàn bộ hàng
bang_diem[1] = [7, 9, 10]
print(bang_diem)🧮 Phân tích ví dụ
📊 Bảng điểm học sinh
python
# Bảng điểm 3 học sinh, 3 môn
diem = [
[8, 9, 7], # Học sinh 1: Toán, Lý, Hóa
[6, 8, 9], # Học sinh 2
[9, 7, 8] # Học sinh 3
]
# Truy cập điểm cụ thể
print("Điểm Toán của học sinh 1:", diem[0][0])
print("Điểm Hóa của học sinh 2:", diem[1][2])
# Thống kê
tong_diem_hs1 = sum(diem[0])
print("Tổng điểm học sinh 1:", tong_diem_hs1)🎮 Game board
python
# Bàn cờ tic-tac-toe 3x3
board = [
['X', 'O', ' '],
[' ', 'X', ' '],
['O', ' ', 'X']
]
# Kiểm tra ô trống
if board[1][0] == ' ':
print("Ô (1,0) trống")
# Đánh dấu
board[1][0] = 'O'
print("Bàn cờ sau khi đánh:")
for hang in board:
print(hang)🏋️ Ví dụ thực hành
📅 Bảng thời khóa biểu
python
# Thời khóa biểu 5 ngày, 4 tiết
tkb = [
['Toán', 'Lý', 'Hóa', 'Văn'], # Thứ 2
['Anh', 'Toán', 'Sử', 'Địa'], # Thứ 3
['Lý', 'Hóa', 'Anh', 'Toán'], # Thứ 4
['Văn', 'Sử', 'Địa', 'Sinh'], # Thứ 5
['GDCD', 'Tin', 'Thể dục', 'Âm'], # Thứ 6
]
# Xem môn học tiết 2 thứ 4
print("Tiết 2 thứ 4:", tkb[2][1]) # 'Hóa'
# Đếm số tiết Toán trong tuần
so_tiet_toan = 0
for ngay in tkb:
so_tiet_toan += ngay.count('Toán')
print("Số tiết Toán:", so_tiet_toan)WARNING
Luôn kiểm tra chỉ số hợp lệ trước khi truy cập để tránh lỗi IndexError
⚠️ Xử lý lỗi truy cập
python
ma_tran = [
[1, 2, 3],
[4, 5, 6]
]
# Cách an toàn để truy cập
def lay_phan_tu(matrix, hang, cot):
if 0 <= hang < len(matrix) and 0 <= cot < len(matrix[hang]):
return matrix[hang][cot]
else:
return "Chỉ số không hợp lệ"
print(lay_phan_tu(ma_tran, 1, 2)) # 6
print(lay_phan_tu(ma_tran, 3, 0)) # Chỉ số không hợp lệ📝 Bài tập thực hành
Bài tập 1: Quản lý điểm số
Tạo bảng điểm cho 4 học sinh, mỗi em có 3 môn học. Thực hiện:
- In điểm môn thứ 2 của học sinh thứ 3
- Sửa điểm môn đầu của học sinh thứ 1 thành 10
- Tính điểm trung bình của học sinh thứ 2
python
# Đáp án
diem = [
[8, 7, 9],
[6, 8, 7],
[9, 8, 10],
[7, 9, 8]
]
# In điểm môn thứ 2 của học sinh thứ 3
print("Điểm môn 2 của HS3:", diem[2][1])
# Sửa điểm
diem[0][0] = 10
# Tính điểm TB của HS2
tb_hs2 = sum(diem[1]) / len(diem[1])
print("Điểm TB HS2:", tb_hs2)📚 Tóm tắt
- Truy cập:
list[hàng][cột]với chỉ số bắt đầu từ 0 - Thay đổi: Gán giá trị mới cho vị trí cụ thể
- An toàn: Kiểm tra chỉ số hợp lệ trước khi truy cập
- Ứng dụng: Bảng điểm, game board, thời khóa biểu
Mẹo
Sử dụng len(list) và len(list[0]) để biết số hàng và số cột