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

Chương trình Python tìm các phần tử xuất hiện ít nhất k lần trong danh sách


Cho danh sách nums và số nguyên k. Trả về danh sách các phần tử xuất hiện ít nhất k lần. Thứ tự các phần tử trong kết quả không quan trọng.

Ví dụ: nums = [2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1], k = 3 → kết quả [2, 5, 6, 3].

Thuật toán

  • Dùng Counter từ collections để đếm tần suất.
  • Duyệt qua các cặp (phần_tử, số_lần), giữ lại những phần tử có số_lần >= k.

Ví dụ mã nguồn

from collections import Counter

def solve(nums, k):
    c = Counter(nums)
    res = [n for n, cnt in c.items() if cnt >= k]
    return res

nums = [2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1]
k = 3
print(solve(nums, k))  # [2, 5, 6, 3]

Đầu vào / Đầu ra

Input:  [2,5,6,2,6,1,3,6,3,8,2,5,9,3,5,1], 3
Output: [2, 5, 6, 3]