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

Python – เรียงเมทริกซ์ตามจำนวนสมาชิกที่มากกว่าสมาชิกก่อนหน้า


เมื่อต้องการเรียงเมทริกซ์ตามจำนวนสมาชิกที่มีค่ามากกว่าสมาชิกก่อนหน้า จะใช้ List Comprehension และเมธอด len() ภายในฟังก์ชัน

ตัวอย่าง

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("The list is :")
print(my_list)
my_list.sort(key=fetch_greater_freq)
print("The resultant list is :")
print(my_list)

ผลลัพธ์

The list is : [[11, 3, 25, 99, 10], [5, 3, 25, 4], [77, 11, 5, 3, 77, 77], [11, 3, 25]]
The resultant list is : [[5, 3, 25, 4], [77, 11, 5, 3, 77, 77], [11, 3, 25], [11, 3, 25, 99, 10]]

คำอธิบาย

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

  • วนลูปผ่านรายการ และตรวจสอบว่าแต่ละสมาชิกน้อยกว่าสมาชิกถัดไปหรือไม่

  • คืนค่าจำนวนครั้งที่พบเงื่อนไขดังกล่าว (ความยาวของรายการที่กรองได้)

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

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

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