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

โปรแกรม Python นับ Unique Keys สำหรับ Value ใน Tuple List

ภาพรวม

นับจำนวนครั้งที่ tuple ปรากฏใน list ของ list โดยใช้ collections.defaultdict

ตัวอย่างโค้ด

import collections

my_list = [[('Hello', 'Hey')], [('Jane', 'Will')], [('William', 'John')], [('Hello', 'Hey')], [('z', 'q')]]
print("รายการต้นฉบับ:")
print(my_list)

my_result = collections.defaultdict(int)
for elem in my_list:
    # elem เป็น list ที่มี tuple เดียว ใช้ elem[0] เข้าถึง tuple
    my_result[elem[0]] += 1

print("ผลลัพธ์:")
print(dict(my_result))

ผลลัพธ์

รายการต้นฉบับ:
[[('Hello', 'Hey')], [('Jane', 'Will')], [('William', 'John')], [('Hello', 'Hey')], [('z', 'q')]]
ผลลัพธ์:
{('Hello', 'Hey'): 2, ('Jane', 'Will'): 1, ('William', 'John'): 1, ('z', 'q'): 1}

คำอธิบาย

  • defaultdict(int) สร้าง dictionary ที่ค่าเริ่มต้นเป็น 0
  • วนลูปผ่านแต่ละ sublist ใช้ tuple แรกเป็น key นับจำนวน
  • Tuple ใช้เป็น key ได้เพราะ immutable

รูปแบบข้อมูลที่แตกต่าง

ถ้าข้อมูลเป็น list of tuples โดยตรง (ไม่ได้อยู่ใน sublist):

my_list = [('Hello', 'Hey'), ('Jane', 'Will'), ('Hello', 'Hey')]
my_result = collections.Counter(my_list)  # ใช้ Counter สะดวกกว่า
print(my_result)  # Counter({('Hello', 'Hey'): 2, ('Jane', 'Will'): 1})