Dada la lista de strings, la tarea es eliminar todas las strings, que son substrings de otras strings.
Entrada : test_list = [“Gfg”, “Gfg es mejor”, “Geeks”, “para”, “Gfg es para geeks”]
Salida : [‘Gfg es mejor’, ‘Gfg es para geeks’]
Explicación : “Gfg ”, “for” y “Geeks” están presentes como substrings en otras strings.
Entrada : test_list = [“Gfg”, “Geeks”, “for”, “Gfg es para Geeks”]
Salida : [‘Gfg es para Geeks’]
Explicación : “Gfg”, “for” y “Geeks” están presentes como substrings en otras strings.
Método n. ° 1: usar enumerar() + unir() + ordenar()
La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, primero se realiza la clasificación en el parámetro de longitud, y la palabra actual se verifica con otras palabras, si ocurre como substring, en caso afirmativo, se excluye del resultado filtrado.
Python3
# Python3 code to demonstrate working of # Remove Redundant Substrings from Strings List # Using enumerate() + join() + sort() # initializing list test_list = ["Gfg", "Gfg is best", "Geeks", "Gfg is for Geeks"] # printing original list print("The original list : " + str(test_list)) # using loop to iterate for each string test_list.sort(key = len) res = [] for idx, val in enumerate(test_list): # concatenating all next values and checking for existence if val not in ', '.join(test_list[idx + 1:]): res.append(val) # printing result print("The filtered list : " + str(res))
The original list : ['Gfg', 'Gfg is best', 'Geeks', 'Gfg is for Geeks'] The filtered list : ['Gfg is best', 'Gfg is for Geeks']
Método n.° 2: usar la comprensión de listas + unir() + enumerar()
La combinación de las funciones anteriores se puede utilizar para resolver este problema. En esto, realizamos la tarea de manera similar a la anterior, solo que la diferencia es que es más compacta en la comprensión de la lista.
Python3
# Python3 code to demonstrate working of # Remove Redundant Substrings from Strings List # Using list comprehension + join() + enumerate() # initializing list test_list = ["Gfg", "Gfg is best", "Geeks", "Gfg is for Geeks"] # printing original list print("The original list : " + str(test_list)) # using list comprehension to iterate for each string # and perform join in one liner test_list.sort(key = len) res = [val for idx, val in enumerate(test_list) if val not in ', '.join(test_list[idx + 1:])] # printing result print("The filtered list : " + str(res))
The original list : ['Gfg', 'Gfg is best', 'Geeks', 'Gfg is for Geeks'] The filtered list : ['Gfg is best', 'Gfg is for Geeks']
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