เรามักจะจัดการกับรายการที่ซ้อนกันเมื่อทำการวิเคราะห์ข้อมูลในหลาม ในบทความนี้ เราจะมาดูวิธีการค้นหารายการที่ยาวที่สุดในบรรดาองค์ประกอบในรายการที่ซ้อนกัน แล้วพิมพ์สิ่งนี้พร้อมกับความยาว
การใช้แลมบ์ดาและแผนที่
เราประกาศรายการที่ซ้อนกันและกำหนดให้เป็นอินพุตของฟังก์ชันแลมบ์ดาพร้อมกับความยาว สุดท้าย เราใช้ฟังก์ชัน max เพื่อรับรายการที่มีความยาวสูงสุดและความยาวของรายการดังกล่าว
ตัวอย่าง
def longest(lst): longestList = max(lst, key = lambda i: len(i)) maxLength = max(map(len, listA)) return longestList, maxLength # Driver Code listA = [[1,2], [2,45,6,7], [11,65,2]] print("Longest List and its length:\n",longest(listA))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Longest List and its length: ([2, 45, 6, 7], 4)
การใช้เลนและแม็กซ์
ในแนวทางนี้ อันดับแรก เราจะค้นหารายการย่อยที่มีความยาวสูงสุด จากนั้นวนรอบองค์ประกอบของรายการเพื่อค้นหารายการย่อยที่ตรงกับความยาวนั้น เราใช้ฟังก์ชัน max และ len ในการคำนวณ
ตัวอย่าง
def longest(lst): longestList = [] maxLength = max(len(x) for x in listA) for i in listA: if len(i) == maxLength : longestList = i return longestList, maxLength # Driver Code listA = [[1,2], [2,45,6,7], [11,6,2]] print("Longest List and its length:\n",longest(listA))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Longest List and its length: ([2, 45, 6, 7], 4)
การใช้แผนที่
นี่เป็นแนวทางที่คล้ายกับโปรแกรมด้านบน แต่เรากำลังใช้ฟังก์ชันแผนที่เพื่อค้นหารายการย่อยที่มีความยาวสูงสุด
ตัวอย่าง
def longest(lst): longestList = [] maxLength = max(map(len,listA)) for i in listA: if len(i) == maxLength : longestList = i return longestList, maxLength # Driver Code listA = [[1,2], [2,45,6,7], [11,6,2]] print("Longest List and its length:\n",longest(listA))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Longest List and its length: ([2, 45, 6, 7], 4)