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

Python – Sắp xếp ma trận theo số lượng phần tử lớn hơn phần tử trước


Khi cần sắp xếp ma trận dựa trên số lượng phần tử lớn hơn phần tử đứng ngay trước nó trong cùng hàng, ta dùng list comprehension và len() trong hàm khóa sắp xếp.

Ví dụ

def fetch_greater_freq(row):
    return len([row[idx] for idx in range(0, len(row) - 1) if row[idx] < row[idx + 1]])

my_list = [[11, 3, 25, 99, 10], [5, 3, 25, 4], [77, 11, 5, 3, 77, 77], [11, 3, 25]]
print("Danh sách ban đầu:")
print(my_list)
my_list.sort(key=fetch_greater_freq)
print("Danh sách sau khi sắp xếp:")
print(my_list)

Kết quả

Danh sách ban đầu: [[11, 3, 25, 99, 10], [5, 3, 25, 4], [77, 11, 5, 3, 77, 77], [11, 3, 25]]
Danh sách sau khi sắp xếp: [[5, 3, 25, 4], [77, 11, 5, 3, 77, 77], [11, 3, 25], [11, 3, 25, 99, 10]]

Giải thích

  • Hàm fetch_greater_freq đếm số cặp liên tiếp mà phần tử sau lớn hơn phần tử trước.

  • Ma trận được sắp xếp tăng dần theo số lượng này.