编写一个函数,它接受一个整数数组,并返回一个新数组,即出现频率最高的两个整数



编写一个函数,该函数接受一个整数数组,并返回一个新数组,即最频繁出现的两个整数

函数当前接受数组输入并将其转换为字典对象。

[3,3,1,2,1,4,4,4]=>{3:2,1:3,2:1,4:4}

如何按值对字典进行排序,并且在新数组中返回两个值最高的键?示例[4,1]

def majority_element_top_two(arr):
int_dict = {}    
for i in range(len(arr)):
if arr[i] not in int_dict:  
int_dict[arr[i]] = 1
else:                       
int_dict[arr[i]] += 1     
return int_dict
print(majority_element_top_two([3,3,1,2,1,1,4,4,4,4]))

图像

代码:

def majority_element_top_two(arr):
int_dict = {}    
for i in arr:
if i not in int_dict:  
int_dict[i] = 1
else:                       
int_dict[i] += 1     
return list({k: v for k, v in sorted(int_dict.items(), key=lambda item: item[1],reverse=True)}.keys())[:2]
print(majority_element_top_two([3,3,1,2,1,1,4,4,4,4]))

结果:

[4, 1]

最新更新