编写一个函数,该函数接受一个整数数组,并返回一个新数组,即最频繁出现的两个整数
函数当前接受数组输入并将其转换为字典对象。
[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]