Dada una lista de tuplas, extrae tuplas, que tienen strings formadas por ciertos caracteres.
Entrada : test_list = [(‘gfg’, ‘mejor’), (‘gfg’, ‘bueno’), (‘fest’, ‘gfg’)], char_str = ‘gfg’
Salida : [(‘gfg’, ‘ best’), (‘fest’, ‘gfg’)]
Explicación : todas las tuplas contienen caracteres de char_str.Entrada : test_list = [(‘gfg’, ‘best’), (‘gfg’, ‘good’), (‘fest’, ‘gfg’)], char_str = ‘gfstb’
Salida : []
Explicación : No hay tuplas con caracteres dados.
Método #1: Usando all() + comprensión de lista
En esto, verificamos los caracteres en las strings, usando el operador in y all() se usa para verificar si todos los elementos en la tupla tienen strings formadas por ciertos caracteres.
Python3
# Python3 code to demonstrate working of # Filter Tuples with Strings of specific characters # Using all() + list comprehension # initializing lists test_list = [('gfg', 'best'), ('gfg', 'good'), ('fest', 'gfg')] # printing original lists print("The original list is : " + str(test_list)) # initializing char_str char_str = 'gfestb' # nested all(), to check for all characters in list, # and for all strings in tuples res = [sub for sub in test_list if all( all(el in char_str for el in ele) for ele in sub)] # printing result print("The filtered tuples : " + str(res))
Producción:
La lista original es: [(‘gfg’, ‘best’), (‘gfg’, ‘good’), (‘fest’, ‘gfg’)]
Las tuplas filtradas: [(‘gfg’, ‘best’) , (‘fiesta’, ‘gfg’)]
Método #2: Usando filter() + lambda + all()
Similar al método anterior, la diferencia es filter() + lambda se usa para realizar la tarea de filtrado.
Python3
# Python3 code to demonstrate working of # Filter Tuples with Strings of specific characters # Using filter() + lambda + all() # initializing lists test_list = [('gfg', 'best'), ('gfg', 'good'), ('fest', 'gfg')] # printing original lists print("The original list is : " + str(test_list)) # initializing char_str char_str = 'gfestb' # nested all(), to check for all characters in list, # and for all strings in tuples filter() is used # to extract tuples res = list(filter(lambda sub: all(all(el in char_str for el in ele) for ele in sub), test_list)) # printing result print("The filtered tuples : " + str(res))
Producción:
La lista original es: [(‘gfg’, ‘best’), (‘gfg’, ‘good’), (‘fest’, ‘gfg’)]
Las tuplas filtradas: [(‘gfg’, ‘best’) , (‘fiesta’, ‘gfg’)
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