Python – Filtrar tuplas por elemento Kth de la lista

Dada una lista de tuplas, filtre por la presencia del elemento K-ésimo en la Lista.

Entrada : test_list = [(“GFg”, 5, 9), (“es”, 4, 3), (“mejor”, 10, 29)], check_list = [4, 2, 3, 10], K = 2
Salida : [(‘es’, 4, 3)]
Explicación : 3 es el segundo elemento y está presente en la lista, por lo tanto, tupla filtrada.

Entrada : test_list = [(“GFg”, 5, 9), (“es”, 4, 3), (“mejor”, 10, 29)], check_list = [4, 2, 3, 10], K = 1
Salida : [(‘es’, 4, 3), (‘mejor’, 10, 29)]
Explicación : 4 y 10 son los primeros elementos y están presentes en la lista, por lo tanto, son tuplas filtradas.

Método #1: Usar la comprensión de listas

En esto, verificamos que cada elemento del K-ésimo elemento de Tuple esté presente en la lista de forma abreviada usando la comprensión de la lista y la contención se prueba usando el operador in.

Python3

# Python3 code to demonstrate working of 
# Filter Tuples by Kth element from List
# Using list comprehension
  
# initializing list
test_list = [("GFg", 5, 9), ("is", 4, 3), ("best", 10, 29)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing check_list
check_list = [4, 2, 8, 10]
  
# initializing K 
K = 1
  
# checking for presence on Kth element in list 
# one liner 
res = [sub for sub in test_list if sub[K] in check_list]
  
# printing result 
print("The filtered tuples : " + str(res))
Producción

The original list is : [('GFg', 5, 9), ('is', 4, 3), ('best', 10, 29)]
The filtered tuples : [('is', 4, 3), ('best', 10, 29)]

Método #2: Usar filter() + lambda

En esto, la función lambda verifica la presencia de elementos y el filtro realiza la tarea de filtrar tuplas.

Python3

# Python3 code to demonstrate working of 
# Filter Tuples by Kth element from List
# Using filter() + lambda
  
# initializing list
test_list = [("GFg", 5, 9), ("is", 4, 3), ("best", 10, 29)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# initializing check_list
check_list = [4, 2, 8, 10]
  
# initializing K 
K = 1
  
# filter() perform filter, lambda func. checks for presence
# one liner 
res = list(filter(lambda sub: sub[K] in check_list, test_list))
  
# printing result 
print("The filtered tuples : " + str(res))
Producción

The original list is : [('GFg', 5, 9), ('is', 4, 3), ('best', 10, 29)]
The filtered tuples : [('is', 4, 3), ('best', 10, 29)]

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 *