รายการ Python สามารถมีรายการย่อยได้ รายการย่อยเองคือรายการที่ซ้อนอยู่ในรายการที่ใหญ่กว่า ในบทความนี้ เราจะมาดูวิธีการนับจำนวนรายการย่อยที่ไม่ซ้ำภายในรายการที่กำหนด
การใช้ตัวนับ
Counter เป็นคลาสย่อยของ Dictionary และใช้เพื่อติดตามองค์ประกอบและการนับ นอกจากนี้ยังถือว่าเป็นคอลเล็กชันที่ไม่เรียงลำดับซึ่งองค์ประกอบจะถูกเก็บไว้เป็นคีย์ Dict และนับเป็นค่า dict ในตัวอย่างด้านล่าง เราจะนำรายการที่มีรายการย่อยโดยตรง
ตัวอย่าง
from collections import Counter # Given List Alist = [['Mon'],['Tue','Wed'],['Tue','Wed']] print(Counter(str(elem) for elem in Alist))
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Counter({"['Tue', 'Wed']": 2, "['Mon']": 1})
มี append()
นอกจากนี้เรายังสามารถวนซ้ำองค์ประกอบของรายการและตั้งค่าเป็นทูเพิลแล้วเพิ่ม 1 ต่อไปสำหรับการเกิดขึ้นขององค์ประกอบเดียวกันแต่ละครั้ง ขั้นสุดท้ายให้พิมพ์รายการใหม่ที่แสดงรายการย่อยเป็นคีย์และนับเป็นค่า
ตัวอย่าง
# Given List Alist = [['Mon'],['Tue','Wed'],['Tue','Wed'], ['Tue','Wed']] # Initialize list NewList = {} # Use Append through Iteration for elem in Alist: NewList.setdefault(tuple(elem), list()).append(1) for k, v in NewList.items(): NewList[k] = sum(v) # Print Result print(NewList)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
{('Mon',): 1, ('Tue', 'Wed'): 3}