Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python – Đếm key duy nhất cho mỗi giá trị trong danh sách tuple

Đếm số lượng key duy nhất (phần tử đầu tuple) tương ứng với mỗi giá trị (phần tử thứ hai) trong danh sách tuple. Sử dụng defaultdict, set và append().

Mã nguồn

from collections import defaultdict

my_list = [(12, 32), (12, 21), (21, 32), (89, 21), (71, 21), (89, 11), (99, 10), (8, 23), (10, 23)]
print("Danh sách tuple:", my_list)

# Bước 1: Gom nhóm key theo value
my_result = defaultdict(list)
for element in my_list:
    my_result[element[1]].append(element[0])

# Bước 2: Đếm key duy nhất cho mỗi value
result_dictionary = {}
for key in my_result:
    result_dictionary[key] = len(set(my_result[key]))

print("Kết quả (value: số key duy nhất):", result_dictionary)

Kết quả

Danh sách tuple: [(12, 32), (12, 21), (21, 32), (89, 21), (71, 21), (89, 11), (99, 10), (8, 23), (10, 23)]
Kết quả (value: số key duy nhất): {32: 2, 21: 3, 11: 1, 10: 1, 23: 2}

Giải thích

  • defaultdict(list) tự động tạo list rỗng cho key mới.
  • Duyệt tuple: element[1] là value (key của dict), element[0] là key (value của dict).
  • Sau vòng lặp: {32: [12, 21], 21: [12, 89, 71], 11: [89], 10: [99], 23: [8, 10]}.
  • set(my_result[key]) loại bỏ key trùng lặp, len() đếm số lượng duy nhất.

Cách ngắn gọn


from collections import Counter
# Đếm cặp (value, key) duy nhất
unique_pairs = set(my_list)
result = Counter(v for k, v in unique_pairs)
print(dict(result))