📜  Python|删除列表中重复少于 k 次的元素(1)

📅  最后修改于: 2023-12-03 15:04:24.734000             🧑  作者: Mango

Python | 删除列表中重复少于 k 次的元素

在 Python 中,我们可以通过简单的方法去掉列表中出现次数小于 k 的重复元素。

方法一:使用 Counter

我们可以使用库函数 collections.Counter() 统计每个元素出现的次数,然后删除出现次数小于 k 的重复元素。

from collections import Counter

def remove_duplicates_less_than_k(lst, k):
    cnt = Counter(lst)
    return [x for x in lst if cnt[x] >= k]
方法二:使用 defaultdict

我们可以使用 collections.defaultdict() 统计每个元素出现的次数,然后删除出现次数小于 k 的重复元素。

from collections import defaultdict

def remove_duplicates_less_than_k(lst, k):
    d = defaultdict(int)
    for x in lst:
        d[x] += 1
    return [x for x in lst if d[x] >= k]
示例
lst = [1, 2, 3, 1, 2, 2, 4, 5, 4, 4, 5]
k = 2
print(remove_duplicates_less_than_k(lst, k))  # [1, 2, 2, 4, 5, 4, 4, 5]

以上两种方法都能够实现去除列表中出现次数小于 k 的重复元素的功能,具体采用哪种方法还需根据实际情况进行选择。