เมื่อจำเป็นต้องจัดเรียงเมทริกซ์ตามจำนวนพาลินโดรม จะมีการกำหนดเมธอดที่รับรายการเป็นพารามิเตอร์ ใช้ list comprehension และ 'join' method เพื่อทำซ้ำและดูว่าองค์ประกอบนั้นเป็น palindrome หรือไม่ ตามนี้ ผลลัพธ์จะถูกกำหนดและแสดงผล
ตัวอย่าง
ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน
def get_palindrome_count(row): return len([element for element in row if''.join(list(reversed(element))) == element]) my_list = [["abcba", "hdgfue", "abc"], ["peep"],["py", "is", "best"],["sees", "level", "non", "noon"]] print("The list is :") print(my_list) my_list.sort(key=get_palindrome_count) print("The resultant list is :") print(my_list)
ผลลัพธ์
The list is : [['abcba', 'hdgfue', 'abc'], ['peep'], ['py', 'is', 'best'], ['sees', 'level', 'non', 'noon']] The resultant list is : [['py', 'is', 'best'], ['abcba', 'hdgfue', 'abc'], ['peep'], ['sees', 'level', 'non', 'noon']]
คำอธิบาย
-
มีการกำหนดเมธอดชื่อ 'get_palindrome_count' ซึ่งรับรายการเป็นพารามิเตอร์
-
ความเข้าใจรายการใช้เพื่อวนซ้ำรายการและดูว่าองค์ประกอบนั้นเป็นพาลินโดรมหรือไม่
-
ถ้าใช่ จะส่งคืน
-
นอกเมธอด รายการของรายการที่มีค่าสตริงถูกกำหนดและแสดงบนคอนโซล
-
วิธี 'sort' ใช้เพื่อจัดเรียงรายการตามคีย์ซึ่งเป็นวิธีการที่กำหนดไว้ก่อนหน้านี้
-
สิ่งนี้จะแสดงเป็นเอาต์พุตบนคอนโซล te