2D Lists trong Python là danh sách các phần tử mà mỗi phần tử là một danh sách. Chúng ta có thể truy cập các phần tử trong danh sách này bằng cách sử dụng chỉ mục của chúng.
Ví dụ, danh sách hai chiều (2D List) có thể được tạo bằng cách lồng các danh sách (List) với nhau như sau:
# Tạo một danh sách hai chiều với 3 dòng và 4 cột
matrix = [[0, 1, 2, 3],
[4, 5, 6, 7],
[8, 9, 10, 11]]
Trong đó, matrix
là danh sách hai chiều, chứa 3 dòng và 4 cột. Các phần tử có thể được truy cập bằng cách sử dụng chỉ mục của chúng:
# In ra phần tử ở dòng 1, cột 2 của danh sách hai chiều
print(matrix[1][2]) # kết quả: 6
# Thay đổi giá trị của phần tử ở dòng 2, cột 3 của danh sách hai chiều
matrix[2][3] = 15
# In ra danh sách hai chiều sau khi đã thay đổi giá trị
print(matrix) # kết quả: [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 15]]
Ví dụ trên tạo ra một danh sách hai chiều với 3 dòng và 4 cột. Phần tử tại hàng thứ nhất, cột thứ hai của danh sách hai chiều được truy cập bằng matrix[1][2]
. Chúng ta cũng có thể thay đổi giá trị của phần tử tại hàng thứ hai, cột thứ ba của danh sách hai chiều bằng matrix[2][3] = 15
.
Một ví dụ về 2D list trong thực tế là danh sách sinh viên và điểm số của họ trong từng kỳ học. Mỗi sinh viên có nhiều hơn một điểm số, do đó danh sách sinh viên được lưu trữ trong một 2D list, trong đó mỗi hàng đại diện cho một sinh viên và mỗi cột đại diện cho điểm số của họ trong từng kỳ học.
# Khởi tạo danh sách sinh viên và điểm số của họ trong từng kỳ học
students = [
["John", 8, 9, 7],
["Emma", 7, 8, 9],
["Peter", 9, 9, 8],
["Mary", 6, 9, 7]
]
# In điểm số của mỗi sinh viên trong từng kỳ học
for student in students:
print(f"Student {student[0]}'s scores:")
for i in range(1, len(student)):
print(f"Semester {i}: {student[i]}")
Kết quả:
Student John's scores:
Semester 1: 8
Semester 2: 9
Semester 3: 7
Student Emma's scores:
Semester 1: 7
Semester 2: 8
Semester 3: 9
Student Peter's scores:
Semester 1: 9
Semester 2: 9
Semester 3: 8
Student Mary's scores:
Semester 1: 6
Semester 2: 9
Semester 3: 7