Dada la lista de strings, escriba un programa de Python para obtener la palabra con la mayor cantidad de ocurrencias.
Ejemplo:
Entrada : test_list = [“gfg es mejor para geeks”, “geeks love gfg”, “gfg is best”]
Salida : gfg
Explicación : gfg ocurre 3 veces, la mayoría en strings en total.Entrada : test_list = [“geeks love gfg”, “geeks are best”]
Salida : geeks
Explicación : geeks ocurre 2 veces, la mayoría en strings en total.
Método #1: Usando loop + max() + split() + defaultdict()
En esto, realizamos la tarea de obtener cada palabra usando split() , y aumentamos su frecuencia al memorizarla usando defaultdict() . Por último, max() , se usa con el parámetro para obtener el recuento de la string de frecuencia máxima.
Python3
# Python3 code to demonstrate working of # Most frequent word in Strings List # Using loop + max() + split() + defaultdict() from collections import defaultdict # initializing Matrix test_list = ["gfg is best for geeks", "geeks love gfg", "gfg is best"] # printing original list print("The original list is : " + str(test_list)) temp = defaultdict(int) # memoizing count for sub in test_list: for wrd in sub.split(): temp[wrd] += 1 # getting max frequency res = max(temp, key=temp.get) # printing result print("Word with maximum frequency : " + str(res))
Producción:
The original list is : ['gfg is best for geeks', 'geeks love gfg', 'gfg is best'] Word with maximum frequency : gfg
Método n.º 2: Usar comprensión de listas + modo()
En esto, obtenemos todas las palabras usando la comprensión de listas y obtenemos la frecuencia máxima usando mode() .
Python3
# Python3 code to demonstrate working of # Most frequent word in Strings List # Using list comprehension + mode() from statistics import mode # initializing Matrix test_list = ["gfg is best for geeks", "geeks love gfg", "gfg is best"] # printing original list print("The original list is : " + str(test_list)) # getting all words temp = [wrd for sub in test_list for wrd in sub.split()] # getting frequency res = mode(temp) # printing result print("Word with maximum frequency : " + str(res))
Producción:
The original list is : ['gfg is best for geeks', 'geeks love gfg', 'gfg is best'] Word with maximum frequency : gfg
Método #3: Usando list() y Counter()
- Agregue todas las palabras a la lista vacía y calcule la frecuencia de todas las palabras usando la función Contador() .
- Encuentre el conteo máximo e imprima esa clave.
A continuación se muestra la implementación:
Python3
# Python3 code to demonstrate working of # Most frequent word in Strings List from collections import Counter # function which returns # most frequent word def mostFrequentWord(words): # Taking empty list lis = [] for i in words: # Getting all words for j in i.split(): lis.append(j) # Calculating frequency of all words freq = Counter(lis) # find max count and print that key max = 0 for i in freq: if(freq[i] > max): max = freq[i] word = i return word # Driver code # initializing strings list words = ["gfg is best for geeks", "geeks love gfg", "gfg is best"] # printing original list print("The original list is : " + str(words)) # passing this words to mostFrequencyWord function # printing result print("Word with maximum frequency : " + mostFrequentWord(words)) # This code is contributed by vikkycirus
Producción:
The original list is : ['gfg is best for geeks', 'geeks love gfg', 'gfg is best'] Word with maximum frequency : gfg
La complejidad de tiempo y espacio para todos los métodos es la misma:
Complejidad temporal: O(n 2 )
Complejidad espacial: O(n)
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