Một danh sách cho trước có nhiều mục lặp lại. Ta quan tâm đến việc tìm tổng tần suất của một số mục lặp lại đó trong danh sách. Dưới đây là các cách tiếp cận để đạt được điều này.
Sử dụng sum
Ta có hai danh sách. Một có danh sách giá trị, danh sách kia có các giá trị cần kiểm tra tần suất từ danh sách đầu tiên. Vì vậy, ta tạo vòng lặp for để đếm số lần xuất hiện của các phần tử từ danh sách thứ hai trong danh sách đầu tiên và áp dụng hàm sum để lấy tổng tần suất cuối cùng.
Ví dụ
chk_list= ['Mon', 'Tue'] big_list = ['Mon','Tue', 'Wed', 'Mon','Mon','Tue'] # Áp dụng sum res = sum(big_list.count(elem) for elem in chk_list) # In kết quả print("Danh sách cần phân tích: \n", big_list) print("Danh sách với giá trị cần phân tích:\n", chk_list) print("Tổng tần suất: ", res)Kết quả
Chạy mã trên cho kết quả sau −
Danh sách cần phân tích: ['Mon', 'Tue', 'Wed', 'Mon', 'Mon', 'Tue'] Danh sách với giá trị cần phân tích: ['Mon', 'Tue'] Tổng tần suất: 5
Sử dụng collections.Counter
Hàm Counter từ module collections có thể đạt được kết quả mong muốn bằng cách áp dụng nó cho danh sách cần phân tích giá trị trong khi lặp qua danh sách nhỏ hơn chỉ chứa các phần tử cần thiết lập tần suất.
Ví dụ
from collections import Counter chk_list= ['Mon', 'Tue'] big_list = ['Mon','Tue', 'Wed', 'Mon','Mon','Tue'] # Áp dụng Counter res = sum(Counter(big_list)[x] for x in chk_list) # In kết quả print("Danh sách cần phân tích: \n", big_list) print("Danh sách với giá trị cần phân tích:\n", chk_list) print("Tổng tần suất: ", res)Kết quả
Chạy mã trên cho kết quả sau −
Danh sách cần phân tích: ['Mon', 'Tue', 'Wed', 'Mon', 'Mon', 'Tue'] Danh sách với giá trị cần phân tích: ['Mon', 'Tue'] Tổng tần suất: 5