หลายครั้งที่เราจำเป็นต้องนับองค์ประกอบที่มีอยู่ในรายการสำหรับการประมวลผลข้อมูลบางอย่าง แต่อาจมีกรณีของรายการที่ซ้อนกันและการนับอาจไม่ตรงไปตรงมา ในบทความนี้ เราจะมาดูวิธีจัดการกับความซับซ้อนเหล่านี้ในการนับจำนวนองค์ประกอบในรายการ
ด้วย For loop
ในแนวทางนี้ เราใช้ two for loops เพื่อดำเนินการตามโครงสร้างการซ้อนของ list ในโปรแกรมด้านล่าง เรามีรายการซ้อนซึ่งองค์ประกอบภายในมีจำนวนองค์ประกอบต่างกันอยู่ภายใน นอกจากนี้เรายังใช้ฟังก์ชัน len() เพื่อคำนวณความยาวของรายการที่แบน
ตัวอย่าง
listA = [[2,9, 6], [5, 'a'], [0], [12,'c', 9, 3]] # Given list print("Given list : ",listA) res = len([x for y in listA for x in y]) # print result print("Total count of elements : " ,res)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given list : [[2, 9, 6], [5, 'a'], [0], [12, 'c', 9, 3]] Total count of elements : 10
มีโซ่
ในแนวทางนี้ เราใช้วิธีลูกโซ่ซึ่งดึงเอาองค์ประกอบภายในทั้งหมดออกจากรายการโดยทำให้แบนราบ จากนั้นจึงแปลงเป็นรายการ สุดท้ายใช้ฟังก์ชัน len() เพื่อให้พบการนับองค์ประกอบในรายการ
ตัวอย่าง
from itertools import chain listA = [[2,9, 6], [5, 'a'], [0], [12,'c', 9, 3]] # Given list print("Given list : ",listA) res = len(list(chain(*listA))) # print result print("Total count of elements : " ,res)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given list : [[2, 9, 6], [5, 'a'], [0], [12, 'c', 9, 3]] Total count of elements : 10