ได้ Dictionary ที่ Value บางตัวเป็น List นับจำนวน Item ทั้งหมดใน Value ที่เป็น List ทั้งหมด
วิธี 1: ใช้ isinstance() ใน For Loop
Adict = {'Days': ["Mon","Tue","Wed","Thu"], 'time': "2 pm", 'Subjects': ["Phy","Chem","Maths","Bio"]}
count = 0
for v in Adict.values():
if isinstance(v, list):
count += len(v)
print(count) # 8
วิธี 2: ใช้ items() (เข้าถึง Key ได้)
Adict = {'Days': ["Mon","Tue","Wed","Thu"], 'time': "2 pm", 'Subjects': ["Phy","Chem","Maths","Bio"]}
count = sum(len(v) for v in Adict.values() if isinstance(v, list))
print(count) # 8
วิธี 3: ใช้ enumerate(items())
Adict = {'Days': ["Mon","Tue","Wed","Thu"], 'time': "2 pm", 'Subjects': ["Phy","Chem","Maths","Bio"]}
count = 0
for _, (k, v) in enumerate(Adict.items()):
if isinstance(v, list):
count += len(v)
print(count) # 8
สรุป
วิธี 2 กระชับที่สุด ใช้ Generator Expression กับ sum() ไม่ต้องสร้างตัวแปรกลาง