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

Phần tử có tần suất lớn nhất trong danh sách bằng Python

Rất nhiều phân tích dữ liệu thống kê cố gắng tìm các giá trị có tần suất tối đa trong danh sách các giá trị nhất định. Python cung cấp nhiều cách tiếp cận bằng cách sử dụng mà chúng ta có thể tìm thấy giá trị như vậy tạo thành một danh sách nhất định. Dưới đây là các cách tiếp cận.

Sử dụng Bộ đếm

Hàm Counter từ mô-đun tập hợp có các tùy chọn có thể tìm trực tiếp phần tử phổ biến nhất trong một danh sách nhất định. Chúng tôi có hàm most_common mà chúng tôi truyền tham số 1 cho chỉ một phần tử có tần suất cao nhất và chuyển 2 nếu chúng tôi cần hai phần tử có tần suất cao nhất.

Ví dụ

from collections import Counter

# Given list
listA = ['Mon', 'Tue','Mon', 9, 3, 3]

print("Given list : ",listA)

# Adding another element for each element
Newlist1 = Counter(listA).most_common(1)
Newlist2 = Counter(listA).most_common(2)


# Results
print("New list after duplication: ",Newlist1)
print("New list after duplication: ",Newlist2)

Đầu ra

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

Given list : ['Mon', 'Tue', 'Mon', 9, 3, 3]
New list after duplication: [('Mon', 2)]
New list after duplication: [('Mon', 2), (3, 2)]

Chế độ sử dụng

Chế độ này là một chức năng thống kê có sẵn trong mô-đun thống kê của python. Nó sẽ xuất ra phần tử có tần số cao nhất. Nếu có nhiều phần tử như vậy thì phần tử gặp phải đầu tiên có tần số cao nhất sẽ là đầu ra.

Ví dụ

from statistics import mode

# Given list
listA = ['Mon', 'Tue','Mon', 9, 3, 3]
listB = [3,3,'Mon', 'Tue','Mon', 9]
print("Given listA : ",listA)
print("Given listB : ",listB)

# Adding another element for each element
Newlist1 = mode(listA)
Newlist2 = mode(listB)

# Results
print("New listA after duplication: ",Newlist1)
print("New listB after duplication: ",Newlist2)

Đầu ra

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

Given listA : ['Mon', 'Tue', 'Mon', 9, 3, 3]
Given listB : [3, 3, 'Mon', 'Tue', 'Mon', 9]
New listA after duplication: Mon
New listB after duplication: 3