Top k palabras de alta frecuencia
Para una lista de palabras que no esté vacía, devuelva las primeras _k_ palabras que aparecen con mayor frecuencia.
Las respuestas devueltas deben ordenarse por frecuencia de palabras de mayor a menor. Si diferentes palabras tienen la misma frecuencia, se ordenan alfabéticamente.
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)