Skip to content

🔍 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)len(list[0]) để biết số hàng và số cột

🐍 Khóa học Python căn bản bằng tiếng Việt