📅  最后修改于: 2023-12-03 15:28:42.431000             🧑  作者: Mango
给定一个整数数组arr
和一个整数n
,请编写Python
函数,将arr
中所有出现频率小于等于n
的数字删除,并返回剩余的数字数组。
arr
:整数数组 n
:整数 返回一个新的整数数组,仅包含出现频率大于$n$的数字。
arr = [1, 2, 3, 2, 3, 4, 5, 2]
n = 2
[2, 3, 2, 3, 2]
这一题是一个比较简单的题目,我们可以使用collections
模块中的Counter
函数,首先对数组中的每一个数字进行计数,然后遍历计数结果,将出现次数大于$n$的数字添加到新的数组中,最后返回新数组即可。
from collections import Counter
def remove_frequency_less_than_n(arr, n):
# 计数
c = Counter(arr)
res = []
# 遍历计数结果
for num, freq in c.items():
# 如果该数字的出现频率大于n,就添加到结果数组中
if freq > n:
res += [num] * freq
return res
这一题中,我们主要使用了collections
模块中的Counter
函数,它可以非常方便地对一个数组中的数字进行计数。需要注意的是,本题中的数字出现次数的计算是根据数字本身而不是数字出现的位置,因此在遍历计数结果进行添加时,需要使用[num] * freq
来添加多个相同的数字到结果数组中。