Sắp xếp các hàng của ma trận (list of lists) dựa trên tổng lớn nhất của các mảng con (subarray) liên tiếp có kích thước K trong mỗi hàng. Sử dụng max() và sum() trong hàm key của sort().
Ví dụ
Minh họa:
def sort_matrix_K(my_list):
return max(sum(my_list[index: index + K]) for index in range(len(my_list) - K))
my_list = [[51, 23, 4, 24, 1], [45, 6, 26, 36, 5], [56, 16, 6, 36, 8], [5, 4, 36, 26, 26]]
print("Ma trận:", my_list)
K = 4
print("K =", K)
my_list.sort(key=sort_matrix_K)
print("Ma trận sau sắp xếp:", my_list)
Kết quả
Ma trận: [[51, 23, 4, 24, 1], [45, 6, 26, 36, 5], [56, 16, 6, 36, 8], [5, 4, 36, 26, 26]] K = 4 Ma trận sau sắp xếp: [[5, 4, 36, 26, 26], [51, 23, 4, 24, 1], [45, 6, 26, 36, 5], [56, 16, 6, 36, 8]]
Giải thích
- Hàm
sort_matrix_Knhận một hàng (list), tính tổng của mọi mảng con độ dài K, trả về tổng lớn nhất. - Dùng hàm này làm
keycholist.sort()để sắp xếp các hàng theo giá trị key tăng dần.