Python: elimina filas similares de Tuple Matrix

A veces, mientras trabajamos con Tuple Matrix, podemos tener un problema en el que obtenemos muchos datos que son similares, es decir, los elementos son iguales en las filas, solo el orden de las tuplas es diferente, a veces se desea eliminarlas. Este tipo de problema puede tener aplicación en dominios como el desarrollo web y la programación diaria. Analicemos ciertas formas en que se puede realizar esta tarea.

Entrada : test_list = [[(4, 5), (3, 2)], [(3, 2), (4, 5)], [(3, 2), (4, 5)]]
Salida : { ((4, 5), (3, 2))}

Entrada : test_list = [[(4, 6), (3, 2)], [(3, 2), (4, 5)], [(3, 2), (4, 5)]]
Salida : { ((3, 2), (4, 6)), ((4, 5), (3, 2))}

Método n.º 1: usar set() + tuple() + sorted()la comprensión de lista +
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, primero realizamos la clasificación y luego convertimos las filas para establecer, lo que elimina automáticamente los duplicados.

# Python3 code to demonstrate working of 
# Remove Similar Rows from Tuple Matrix
# Using set() + tuple() + sorted() + list comprehension
  
# initializing lists
test_list = [[(4, 5), (3, 2)], [(2, 2), (4, 6)], [(3, 2), (4, 5)]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Remove Similar Rows from Tuple Matrix
# Using set() + tuple() + sorted() + list comprehension
res = set([tuple(set(sub)) for sub in test_list])
  
# printing result 
print("Tuple matrix after removal : " + str(res))
Producción :

The original list is : [[(4, 5), (3, 2)], [(2, 2), (4, 6)], [(3, 2), (4, 5)]]
Tuple matrix after removal : {((4, 6), (2, 2)), ((4, 5), (3, 2))}

Método #2: Usar la set() + frozenset()expresión del generador +
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de ordenar y convertir tuplas usando frozenset().

# Python3 code to demonstrate working of 
# Remove Similar Rows from Tuple Matrix
# Using set() + frozenset() + generator expression
  
# initializing lists
test_list = [[(4, 5), (3, 2)], [(2, 2), (4, 6)], [(3, 2), (4, 5)]]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Remove Similar Rows from Tuple Matrix
# Using set() + frozenset() + generator expression
res = set([frozenset(sub) for sub in test_list])
  
# printing result 
print("Tuple matrix after removal : " + str(res))
Producción :

The original list is : [[(4, 5), (3, 2)], [(2, 2), (4, 6)], [(3, 2), (4, 5)]]
Tuple matrix after removal : {frozenset({(4, 5), (3, 2)}), frozenset({(4, 6), (2, 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 *