Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python – เรียงลำดับแถวตามตัวคูณของ K


เมื่อต้องการเรียงลำดับแถวตามตัวคูณของ K จะนิยามฟังก์ชันที่ใช้ List Comprehension และตัวดำเนินการ modulus (เศษ)

ตัวอย่าง

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("The list is :")
print(my_list)
K = 11
print("The value for K is ")
print(K)
my_list.sort(key=multiple_sort_val)
print("The resultant list is :")
print(my_list)

ผลลัพธ์

The list is : [[11, 44, 7, 11], [7, 5, 44, 11], [11, 6, 35, 44], [92, 92, 5]]
The value for K is 11
The resultant list is : [[92, 92, 5], [7, 5, 44, 11], [11, 6, 35, 44], [11, 44, 7, 11]]

คำอธิบาย

  • นิยามฟังก์ชันที่รับรายการเป็นพารามิเตอร์

  • ใช้ List Comprehension และเมธอด len() เพื่อนับจำนวนสมาชิกที่หารด้วย K ลงตัว (เศษเท่ากับ 0)

  • คืนค่าจำนวนสมาชิกที่เป็นตัวคูณของ K

  • นอกจากฟังก์ชัน กำหนดรายการของรายการและแสดงผล

  • กำหนดค่า K และแสดงผล

  • เรียงลำดับรายการด้วยเมธอด sort() โดยระบุ key เป็นฟังก์ชันที่นิยามไว้

  • แสดงผลลัพธ์บนคอนโซล