Dada uma lista de palavras, mapeie a frequência de cada uma para a ocorrência na string.

Entrada : test_str = 'geeksforgeeks é melhor para geeks e melhor para CS', count_list = ['best', 'geeksforgeeks', 'computer']
Saída : [2, 1, 0]
Explicação : best has 2 occ., Geeksforgeeks 1 e o computador não está presente na string.

Entrada : test_str = 'geeksforgeeks é melhor para geeks e melhor para CS', count_list = ['melhor', 'gfg', 'computer']
Saída : [0, 0, 0]
Explicação : Nenhuma palavra da lista presente na string.

Método # 1: usando defaultdict() + loop + compreensão de lista

Nesse caso, calculamos a frequência das palavras usando loop + defaultdict() e, em seguida, usamos a compreensão de lista para obter todas as contagens correspondentes à lista de palavras.



from collections import defaultdict 
test_str = 'geeksforgeeks is best for geeks and best for CS'
print("The original string is : " + str(test_str)) 
count_list = ['best', 'geeksforgeeks', 'computer', 'better', 'for', 'and'] 
res = defaultdict(int) 
for sub in test_str.split(): 
    res[sub] += 1
      
res = [res[sub] for sub in count_list] 
print("The list words frequency : " + str(res))  
Resultado
A string original é: geeksforgeeks é melhor para geeks e melhor para CS
A frequência das palavras da lista: [2, 1, 0, 0, 2, 1]

Método 2: Usando Counter() + compreensão de lista

Neste, Counter() é usado para realizar tarefas de freqüência de computação, depois disso, a compreensão de lista é usada para atribuir freqüência para listar palavras.

from collections import Counter 
test_str = 'geeksforgeeks is best for geeks and best for CS'
print("The original string is : " + str(test_str)) 
count_list = ['best', 'geeksforgeeks', 'computer', 'better', 'for', 'and'] 
res = Counter(test_str.split()) 
      
res = [res[sub] for sub in count_list] 
print("The list words frequency : " + str(res))  
Resultado
A string original é: geeksforgeeks é melhor para geeks e melhor para CS
A frequência das palavras da lista: [2, 1, 0, 0, 2, 1]