📅  最后修改于: 2023-12-03 15:04:03.344000             🧑  作者: Mango
有时在处理数据时,我们需要找出出现频率相同的元素。这篇文章将介绍如何使用Python编写程序提取出现频率相同的元素。
Counter函数是Python内置的计数器。它可用于将序列中的元素分类计数。
from collections import Counter
def equal_frequency(lst):
count = Counter(lst)
frequency = dict(count)
result = [k for k in frequency if frequency[k] == max(list(count.values()))]
return result
接受一个列表并返回一个具有相同频率的元素列表。该列表可以包含任何类型的数据。
我们可以使用以下代码来测试:
lst1= [1, 2, 3, 4, 4, 5, 5, 5, 6, 6, 7, 7, 7, 7]
lst2 = ["apple", "banana", "cherry", "apple", "banana", "apple", "cherry", "cherry", "apple", "banana"]
print(equal_frequency(lst1))
print(equal_frequency(lst2))
结果如下:
[7]
['apple', 'banana', 'cherry']
在这个例子中,'7'和'cherry'是每个列表中出现频率最高的元素。将隐藏的这些元素收集在一起,返回一个列表。
另一种方法是使用json库。与方法一不同的是,你需要将列表转换为json格式,计算每个元素的出现次数,并返回在列表中看到的出现最多的元素。这种方法可以应用于任何类型的数据。
import json
def equal_frequency(lst):
# Convert list of elements to JSON string
json_string = json.dumps(lst)
# Convert JSON string to dict of element counts
element_count = json.loads(json_string)
result = [k for k, v in element_count.items() if v == max(element_count.values())]
return result
我们可以使用以下代码来测试:
lst1= [1, 2, 3, 4, 4, 5, 5, 5, 6, 6, 7, 7, 7, 7]
lst2 = ["apple", "banana", "cherry", "apple", "banana", "apple", "cherry", "cherry", "apple", "banana"]
print(equal_frequency(lst1))
print(equal_frequency(lst2))
输出结果:
[7]
['apple', 'banana', 'cherry']
在这个例子中,'7'和'cherry'是每个列表中出现频率最高的元素。将隐藏的这些元素收集在一起,返回一个列表。
可以使用collections模块中的计数器函数和Python内置的json库方法来提取出现频率相同的元素。第一种方法使用了collections模块中的计数器函数,第二种方法使用了JSON库。请按照自己的需求使用这两种方法来提取出现频率相同的元素。