Chuyển đổi ma trận 3 chiều (danh sách lồng nhau 3 cấp) thành danh sách các cặp tọa độ. Sử dụng zip() và list comprehension.
Mã nguồn
my_list_1 = [[['He', 'Wi'], ['llo', 'll']], [['Pyt', 'i'], ['hon', 'sFun']], [['Ho', 'g'], ['pe', 'ood']]]
print("Ma trận 3D gốc:", my_list_1)
my_list_1.sort()
print("Sau sắp xếp:", my_list_1)
# List comprehension với zip
my_result = [ele for sub_elem_1, sub_elem_2 in my_list_1 for ele in zip(sub_elem_1, sub_elem_2)]
print("Danh sách tọa độ kết quả:", my_result)
Kết quả
Ma trận 3D gốc: [[['He', 'Wi'], ['llo', 'll']], [['Pyt', 'i'], ['hon', 'sFun']], [['Ho', 'g'], ['pe', 'ood']]]
Sau sắp xếp: [[['He', 'Wi'], ['llo', 'll']], [['Ho', 'g'], ['pe', 'ood']], [['Pyt', 'i'], ['hon', 'sFun']]]
Danh sách tọa độ kết quả: [('He', 'llo'), ('Wi', 'll'), ('Ho', 'pe'), ('g', 'ood'), ('Pyt', 'hon'), ('i', 'sFun')]
Giải thích
- Mỗi phần tử cấp 1 chứa 2 danh sách con (hàng).
zip(sub_elem_1, sub_elem_2)ghép cặp phần tử cùng vị trí từ hai hàng.- List comprehension lồng: outer lặp qua các ma trận 2D, inner lặp qua kết quả zip.
- Kết quả: list các tuple (cặp tọa độ).
Ứng dụng: xử lý hình ảnh, dữ liệu không gian, hoặc ghép nối chuỗi song song.