Dadas dos listas de strings string y substr , escriba un programa Python para filtrar todas las strings en string que contienen string en substr . Ejemplos:
Entrada: string = [‘ciudad1’, ‘clase5’, ‘habitación2’, ‘ciudad2’]
substr = [‘clase’, ‘ciudad’]
Salida: [‘ciudad1’, ‘clase5’, ‘ciudad2’]
Entrada: string = [‘coordenadas’, ‘xyCoord’, ‘123abc’]
substr = [‘abc’, ‘xy’]
Salida: [‘xyCoord’, ‘123abc’]
Método #1: Usar la comprensión de listas.
Podemos usar la comprensión de listas junto con el operador in para verificar si la string en ‘substr’ está contenida en ‘string’ o no.
Python3
# Python3 program to Filter list of # strings based on another list import re def Filter(string, substr): return [str for str in string if any(sub in str for sub in substr)] # Driver code string = ['city1', 'class5', 'room2', 'city2'] substr = ['class', 'city'] print(Filter(string, substr))
['city1', 'class5', 'city2']
Método #2: expresión regular de Python
Python3
# Python3 program to Filter list of # strings based on another list import re def Filter(string, substr): return [str for str in string if re.match(r'[^\d]+|^', str).group(0) in substr] # Driver code string = ['city1', 'class5', 'room2', 'city2'] substr = ['class', 'city'] print(Filter(string, substr))
['city1', 'class5', 'city2']
Método #3: Usando el método find().
El método find() busca la string que se pasa como argumento en la string dada y devuelve la posición o devuelve -1.
Python3
# Python3 program to Filter list of # strings based on another list string = ['city1', 'class5', 'room2', 'city2'] substr = ['class', 'city'] x=[] for i in substr: for j in string: if(j.find(i)!=-1 and j not in x): x.append(j) print(x)
['class5', 'city1', 'city2']
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA