Python – Filtrar tuplas con todos los elementos pares

Dada la Lista de tuplas, filtre solo aquellas con todos los elementos pares.

Entrada : test_list = [(6, 4, 2, 8), (5, 6, 7, 6), (8, 1, 2), (7, )]
Salida : [(6, 4, 2, 8) ]
Explicación : solo 1 tupla con todos los elementos pares.

Entrada : test_list = [(6, 4, 2, 9), (5, 6, 7, 6), (8, 1, 2), (7, )]
Salida : []
Explicación : No hay tupla con todos los elementos pares .

Método #1: Usar bucle

En esto, iteramos cada tupla y verificamos todos los elementos pares usando el operador % y si incluso un elemento es impar, la tupla se marca y no se agrega en la lista de resultados.

Python3

# Python3 code to demonstrate working of 
# Filter Tuples with All Even Elements
# Using loop
  
# initializing list
test_list = [(6, 4, 2, 8), (5, 6, 7, 6), (8, 0, 2), (7, )]
  
# printing original list
print("The original list is : " + str(test_list))
  
res_list = []
for sub in test_list:
    res = True 
      
    # check if all are even
    for ele in sub:
        if ele % 2 != 0:
            res = False
            break
    if res:
        res_list.append(sub)
  
# printing results
print("Filtered Tuples : " + str(res_list))
Producción

The original list is : [(6, 4, 2, 8), (5, 6, 7, 6), (8, 0, 2), (7, )]
Filtered Tuples : [(6, 4, 2, 8), (8, 0, 2)]

Método #2: Usando all() + comprensión de lista

En esto, la tarea de verificar que todos los elementos sean pares se realiza usando all(), y la comprensión de listas se usa para la tarea de filtrar la verificación posterior.

Python3

# Python3 code to demonstrate working of 
# Filter Tuples with All Even Elements
# Using all() + list comprehension
  
# initializing list
test_list = [(6, 4, 2, 8), (5, 6, 7, 6), (8, 0, 2), (7, )]
  
# printing original list
print("The original list is : " + str(test_list))
  
# testing for tuple to be even using all()
res = [sub for sub in test_list if all(ele % 2 == 0 for ele in sub)]
  
# printing results
print("Filtered Tuples : " + str(res))
Producción

The original list is : [(6, 4, 2, 8), (5, 6, 7, 6), (8, 0, 2), (7, )]
Filtered Tuples : [(6, 4, 2, 8), (8, 0, 2)]

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 *