Python – Filtrar tuplas con strings de caracteres específicos

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

Deja una respuesta

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