Python: enumera la frecuencia de las palabras en una string

Dada una lista de palabras, asigne la frecuencia de cada una a la ocurrencia en la string.

Entrada : test_str = ‘geeksforgeeks es mejor para geeks y mejor para CS’, count_list = [‘mejor’, ‘geeksforgeeks’, ‘computadora’] 
Salida : [2, 1, 0] 
Explicación : mejor tiene 2 occ., geeksforgeeks 1 y la computadora no está presente en la string.
Entrada : test_str = ‘geeksforgeeks es mejor para geeks y mejor para CS’, count_list = [‘mejor’, ‘gfg’, ‘computadora’] 
Salida : [0, 0, 0] 
Explicación : No hay ninguna palabra de la lista presente en la string. 
 

Método n.º 1: uso de defaultdict() + bucle + comprensión de lista

En esto, calculamos la frecuencia de las palabras usando loop + defaultdict() y luego usamos la comprensión de listas para obtener todos los conteos correspondientes a la lista de palabras.

Python3

# Python3 code to demonstrate working of
# Divide String into Equal K chunks
# Using list comprehension
from collections import defaultdict
 
# initializing strings
test_str = 'geeksforgeeks is best for geeks and best for CS'
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing count_list
count_list = ['best', 'geeksforgeeks', 'computer', 'better', 'for', 'and']
 
# computing frequency
res = defaultdict(int)
for sub in test_str.split():
    res[sub] += 1
     
# assigning to list words
res = [res[sub] for sub in count_list]
 
# printing result
print("The list words frequency : " + str(res))
Producción

The original string is : geeksforgeeks is best for geeks and best for CS
The list words frequency : [2, 1, 0, 0, 2, 1]

Método #2: Usando Counter() + comprensión de lista

En esto, Counter() se usa para realizar la tarea de calcular la frecuencia, publicar eso, la comprensión de la lista se usa para asignar la frecuencia a las palabras de la lista.

Python3

# Python3 code to demonstrate working of
# Divide String into Equal K chunks
# Using list comprehension
from collections import Counter
 
# initializing strings
test_str = 'geeksforgeeks is best for geeks and best for CS'
 
# printing original string
print("The original string is : " + str(test_str))
 
# initializing count_list
count_list = ['best', 'geeksforgeeks', 'computer', 'better', 'for', 'and']
 
# computing frequency using Counter()
res = Counter(test_str.split())
     
# assigning to list words
res = [res[sub] for sub in count_list]
 
# printing result
print("The list words frequency : " + str(res))
Producción

The original string is : geeksforgeeks is best for geeks and best for CS
The list words frequency : [2, 1, 0, 0, 2, 1]

Complejidad de tiempo : O(N) desde que se usa un ciclo

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *