Python | Eliminar substrings redundantes de la lista de strings

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))
Producción

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))
Producción

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

Deja una respuesta

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