📅  最后修改于: 2023-12-03 14:57:35.433000             🧑  作者: Mango
计算一个数组中频率等于其值的元素。
可以使用字典或计数器来计算元素的频率,并且使用一个列表来存储频率等于其值的元素。以下是一个简单的 Python 实现:
from collections import Counter
def freq_equals_val(arr):
counter = Counter(arr)
result = [num for num, freq in counter.items() if num == freq]
return result
>>> arr = [1, 2, 3, 3, 4, 5, 5, 5, 5]
>>> freq_equals_val(arr)
[3, 5]
在上述示例中,数组中有两个元素的频率等于它们的值,分别是 3 和 5。通过使用计数器来计算元素出现的频率,我们得到以下结果:
>>> counter = Counter(arr)
>>> counter
Counter({5: 4, 3: 2, 1: 1, 2: 1, 4: 1})
通过筛选仅包含频率等于值的元素的列表,我们得到了预期的结果:
>>> result = [num for num, freq in counter.items() if num == freq]
>>> result
[3, 5]
此方法可以很容易地计算频率等于值的元素,并且易于理解和实现。在使用 Python 时,可以使用内置模块计数器。在使用其他编程语言时,可以使用哈希表或字典来实现。