Dada la Lista de strings, la tarea es escribir un programa en Python para agruparlas en sufijos de longitud K.
Entrada : test_list = [“comida”, “pico”, “geek”, “bueno”, “débil”, “sneek”], K = 3
Salida : {‘bueno’: [‘comida’, ‘bueno’], ‘eak’: [‘peak’, ‘weak’], ‘eek’: [‘geek’, ‘sneek’]}
Explicación : las palabras que terminan en ood son comida y bueno, por lo tanto, agrupadas.Entrada : test_list = [“pico”, “geek”, “bueno”, “débil”], K = 3
Salida : {‘bueno’: [‘bueno’], ‘eak’: [‘pico’, ‘débil’ ], ‘eek’: [‘geek’]}
Explicación : la palabra que termina con ood es buena, por lo tanto, agrupada.
Método 1: Usando try/except + bucle
En esto, extraemos los últimos K caracteres y formamos una string, y la agregamos a la lista de claves existente correspondiente, si no se encuentra, pasa por el flujo de captura y crea una nueva clave con una lista con la primera palabra inicializada.
Python3
# Python3 code to demonstrate working of # Group Strings by K length Suffix # Using try/except + loop # initializing list test_list = ["food", "peak", "geek", "good", "weak", "sneek"] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 3 res = {} for ele in test_list: # extracting suffix suff = ele[-K : ] # appending if key found, else creating new one try: res[suff].append(ele) except: res[suff] = [ele] # printing result print("The grouped suffix Strings : " + str(res))
Producción:
La lista original es: [‘comida’, ‘pico’, ‘geek’, ‘bueno’, ‘débil’, ‘sneek’]
El sufijo agrupado Strings: {‘ood’: [‘comida’, ‘bueno’], ‘eak’: [‘pico’, ‘débil’], ‘eek’: [‘geek’, ‘sneek’]}
Método 2: Usando defaultdict() + loop.
Este método evita la necesidad de usar el bloque try/except ya que la inicialización de la lista predeterminada la maneja defaultdict().
Python3
# Python3 code to demonstrate working of # Group Strings by K length Suffix # Using defaultdict() + loop from collections import defaultdict # initializing list test_list = ["food", "peak", "geek", "good", "weak", "sneek"] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 3 res = defaultdict(list) for ele in test_list: # extracting suffix suff = ele[-K : ] # appending into matched suffix key res[suff].append(ele) # printing result print("The grouped suffix Strings : " + str(dict(res)))
Producción:
La lista original es: [‘comida’, ‘pico’, ‘geek’, ‘bueno’, ‘débil’, ‘sneek’]
El sufijo agrupado Strings: {‘ood’: [‘comida’, ‘bueno’], ‘eak’: [‘pico’, ‘débil’], ‘eek’: [‘geek’, ‘sneek’]}
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