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

Python – Sắp xếp hàng theo bội số của K


Khi cần sắp xếp các hàng dựa trên số lượng bội số của một giá trị K, chúng ta định nghĩa một hàm sử dụng list comprehension và toán tử modulus (%).

Ví dụ

def multiple_sort_val(row):
    return len([ele for ele in row if ele % K == 0])

my_list = [[11, 44, 7, 11], [7, 5, 44, 11], [11, 6, 35, 44], [92, 92, 5]]
print("Danh sách ban đầu:")
print(my_list)
K = 11
print("Giá trị K:", K)
my_list.sort(key=multiple_sort_val)
print("Danh sách sau khi sắp xếp:")
print(my_list)

Kết quả

Danh sách ban đầu: [[11, 44, 7, 11], [7, 5, 44, 11], [11, 6, 35, 44], [92, 92, 5]]
Giá trị K: 11
Danh sách sau khi sắp xếp: [[92, 92, 5], [7, 5, 44, 11], [11, 6, 35, 44], [11, 44, 7, 11]]

Giải thích

  • Định nghĩa hàm multiple_sort_val nhận một hàng (list) làm tham số.

  • Hàm sử dụng list comprehension để đếm số phần tử trong hàng chia hết cho K (phần dư bằng 0).

  • Trả về số lượng đó làm giá trị khóa (key) cho việc sắp xếp.

  • Danh sách các hàng được sắp xếp tăng dần theo số lượng bội số của K.