Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

นับรายการย่อยที่ไม่ซ้ำภายในรายการใน Python


รายการ 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}