เรามักจะจัดการกับรายการที่ซ้อนกันเมื่อทำการวิเคราะห์ข้อมูลในหลาม ในบทความนี้ เราจะมาดูวิธีการค้นหารายการที่ยาวที่สุดในบรรดาองค์ประกอบในรายการที่ซ้อนกัน แล้วพิมพ์สิ่งนี้พร้อมกับความยาว
การใช้แลมบ์ดาและแผนที่
เราประกาศรายการที่ซ้อนกันและกำหนดให้เป็นอินพุตของฟังก์ชันแลมบ์ดาพร้อมกับความยาว สุดท้าย เราใช้ฟังก์ชัน 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)