前k个高频单词
给一非空的单词列表,返回前_k_个出现次数最多的单词。
返回的答案应该是按单词出现频率有高到低排序。如果不同的单词有相同出现频率,按照字母顺序排序。
import numpy as np
def result_1(str_list,k):
str_list_set=np.sort(list(set(str_list)))
str_list_set_number=[0 for i in range(len(str_list_set))]
str_dict=dict(zip(str_list_set,str_list_set_number))
for str1 in str_list:
if str1 in str_list_set:
str_dict[str1]+=1
keys=[]
values=[]
for key,value in str_dict.items():
keys.append(key)
values.append(value)
values_idx=np.argsort(values)
keys=np.array(keys)
values=np.array(values)
return keys[values_idx[-k:]],values[values_idx[-k:]]
if __name__ == '__main__':
str_list=['i','love','leetcode','i','love','coding']
k=2
str1,idx_list=result_1(str_list,k)
print(str1,idx_list)