Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python – Loại bỏ phần tử đường chéo chính (first diagonal) khỏi ma trận vuông

Giới thiệu

Để loại bỏ các phần tử trên đường chéo chính (index hàng == index cột) của ma trận vuông, dùng enumerate và list comprehension lọc bỏ index cột trùng với index hàng.

Ví dụ minh họa

my_list = [[45, 67, 85, 42, 11],
           [78, 99, 10, 13, 0],
           [91, 23, 23, 64, 23],
           [91, 11, 22, 14, 35]]

print("Ma trận gốc:")
print(my_list)

my_result = []
for index, element in enumerate(my_list):
    my_result.append([ele for index_1, ele in enumerate(element) if index_1 != index])

print("Ma trận sau khi bỏ đường chéo chính:")
print(my_result)

Kết quả đầu ra

Ma trận gốc:
[[45, 67, 85, 42, 11], [78, 99, 10, 13, 0], [91, 23, 23, 64, 23], [91, 11, 22, 14, 35]]
Ma trận sau khi bỏ đường chéo chính:
[[67, 85, 42, 11], [78, 10, 13, 0], [91, 23, 64, 23], [91, 11, 22, 35]]

Giải thích

  • Duyệt hàng với enumerate -> index hàng.
  • List comprehension lọc cột: giữ nếu index cột index_1 != index (hàng).
  • Kết quả ma trận không còn phần tử [i][i].