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

Python – Sắp xếp list theo tần suất xuất hiện của giá trị K

Giới thiệu

Để sắp xếp các phần tử trong list theo tần suất giảm dần (giá trị xuất hiện nhiều nhất đứng trước), ta dùng Counter.most_common() và list comprehension.

Ví dụ minh họa

from collections import Counter

my_list = [34, 56, 78, 99, 99, 99, 99, 99, 12, 12, 32, 51, 15, 11, 0, 0]
print("Danh sách ban đầu:")
print(my_list)

my_result = [item for items, c in Counter(my_list).most_common() for item in [items] * c]
print("Danh sách sau sắp xếp theo tần suất giảm dần:")
print(my_result)

Kết quả đầu ra

Danh sách ban đầu:
[34, 56, 78, 99, 99, 99, 99, 99, 12, 12, 32, 51, 15, 11, 0, 0]
Danh sách sau sắp xếp theo tần suất giảm dần:
[99, 99, 99, 99, 99, 0, 0, 12, 12, 32, 34, 11, 78, 15, 51, 56]

Giải thích

  • Counter(my_list).most_common() trả về list các tuple (value, count) sắp xếp giảm dần theo count.
  • List comprehension lặp qua từng tuple, lặp lại value đúng count lần.
  • Kết quả: 99 (5 lần), 0 (2 lần), 12 (2 lần), các giá trị khác (1 lần) giữ nguyên thứ tự xuất hiện trong most_common (theo count giảm, tie-break theo thứ tự gặp đầu tiên).