Computer >> Máy Tính >  >> Lập trình >> Python

Tìm tổng tần suất của các phần tử đã cho trong danh sách bằng Python

Một danh sách đã cho có nhiều mục lặp lại. Chúng tôi quan tâm đến việc tìm ra tổng tần suất của một số mục như vậy được lặp lại trong danh sách. Dưới đây là các cách tiếp cận để chúng tôi có thể đạt được điều này.

Với tổng

Chúng tôi có hai danh sách. Một có danh sách các giá trị và một có các giá trị có tần suất cần được kiểm tra từ danh sách đầu tiên. Vì vậy, chúng tôi tạo một 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à sau đó áp dụng hàm sum để nhận tổng tần suất cuối cùng.

Ví dụ

chk_list= ['Mon', 'Tue']
big_list = ['Mon','Tue', 'Wed', 'Mon','Mon','Tue']

# Apply sum
res = sum(big_list.count(elem) for elem in chk_list)

# Printing output
print("Given list to be analysed: \n", big_list)
print("Given list to with values to be analysed:\n", chk_list)
print("Sum of the frequency: ", res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list to be analysed:
['Mon', 'Tue', 'Wed', 'Mon', 'Mon', 'Tue']
Given list to with values to be analysed:
['Mon', 'Tue']
Sum of the frequency: 5

Với bộ sưu tập.Counter

Hàm Counter từ mô-đun tập hợp có thể nhận được kết quả mong muốn bằng cách áp dụng nó vào danh sách có các giá trị phải được phân tích trong khi lặp qua danh sách nhỏ hơn chỉ có các phần tử có tần số cần được thiết lập.

Ví dụ

from collections import Counter

chk_list= ['Mon', 'Tue']
big_list = ['Mon','Tue', 'Wed', 'Mon','Mon','Tue']

# Apply Counter

res = sum(Counter(big_list)[x] for x in chk_list)

# Printing output
print("Given list to be analysed: \n", big_list)
print("Given list to with values to be analysed:\n", chk_list)
print("Sum of the frequency: ", res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list to be analysed:
['Mon', 'Tue', 'Wed', 'Mon', 'Mon', 'Tue']
Given list to with values to be analysed:
['Mon', 'Tue']
Sum of the frequency: 5