Python: filtro de tupla con todos los mismos elementos

Dada Lista de tuplas, filtra las tuplas que tienen los mismos valores.

Entrada : test_list = [(5, 6, 5, 5), (6, 6, 6), (9, 10)] 
Salida : [(6, 6, 6)] 
Explicación : 1 tupla con los mismos elementos.

Entrada : test_list = [(5, 6, 5, 5), (6, 5, 6), (9, 10)] 
Salida : [] 
Explicación : No hay tupla con los mismos elementos.
 

Método n.º 1: usar la comprensión de listas + set() + len()

En esto, verificamos que la longitud de la tupla convertida establecida sea 1, si eso se verifica, la tupla se agrega al resultado, de lo contrario, se omite.

Python3

# Python3 code to demonstrate working of
# Filter similar elements Tuples
# Using list comprehension + set() + len()
 
# initializing list
test_list = [(5, 6, 5, 5), (6, 6, 6), (1, 1), (9, 10)]
 
# printing original list
print("The original list is : " + str(test_list))
 
# length is computed using len()
res = [sub for sub in test_list if len(set(sub)) == 1]
         
# printing results
print("Filtered Tuples : " + str(res))
Producción

The original list is : [(5, 6, 5, 5), (6, 6, 6), (1, 1), (9, 10)]
Filtered Tuples : [(6, 6, 6), (1, 1)]

Método #2: Usando filter() + lambda + set() + len()

En esto, realizamos la tarea de filtrar usando filter(), y la lógica de un solo elemento se verifica en la función lambda usando set() y len().

Python3

# Python3 code to demonstrate working of
# Filter similar elements Tuples
# Using filter() + lambda + set() + len()
 
# initializing list
test_list = [(5, 6, 5, 5), (6, 6, 6), (1, 1), (9, 10)]
 
# printing original list
print("The original list is : " + str(test_list))
 
# end result converted to list object
# filter extracts req. tuples
res = list(filter(lambda sub : len(set(sub)) == 1, test_list))
         
# printing results
print("Filtered Tuples : " + str(res))
Producción

The original list is : [(5, 6, 5, 5), (6, 6, 6), (1, 1), (9, 10)]
Filtered Tuples : [(6, 6, 6), (1, 1)]

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 *