Python | Eliminar filas de elementos similares en tuple Matrix

A veces, mientras trabajamos con datos, podemos tener un problema en el que necesitamos eliminar elementos de la array de tupla con la condición de que todos los elementos en la fila de la array de tupla sean iguales. Analicemos ciertas formas en que se puede realizar esta tarea.

Método n.º 1: Uso de la comprensión de listas +all()
Esta tarea se puede realizar mediante una combinación de las funciones anteriores. En esto, recorremos todas las filas utilizando la comprensión de listas y eliminamos todos los elementos que coinciden con el elemento inicial en la columna de la fila con la ayuda de all().

# Python3 code to demonstrate working of
# Remove similar element rows in tuple Matrix
# using list comprehension + all()
  
# initialize tuple
test_tup = ((1, 3, 5), (2, 2, 2),
            (9, 10, 10), (4, 4, 4))
  
# printing original tuple
print("The original tuple : " + str(test_tup))
  
# Remove similar element rows in tuple Matrix
# using list comprehension + all()
res = tuple(ele for ele in test_tup if not all(sub == ele[0] for sub in ele))
  
# printing result
print("The tuple after removal of like-element rows : " + str(res))
Producción :

The original tuple : ((1, 3, 5), (2, 2, 2), (9, 10, 10), (4, 4, 4))
The tuple after removal of like-element rows : ((1, 3, 5), (9, 10, 10))

Método n.º 2: Uso set()de la expresión + generador
Esta tarea también se puede realizar utilizando las funcionalidades proporcionadas. En esto, solo verificamos que la longitud de la fila reducida usando set() sea mayor que 1. En caso afirmativo, sabemos que es la fila de destino que se eliminará.

# Python3 code to demonstrate working of
# Remove similar element rows in tuple Matrix
# using set() + generator expression
  
# initialize tuple
test_tup = ((1, 3, 5), (2, 2, 2), 
            (9, 10, 10), (4, 4, 4))
  
# printing original tuple
print("The original tuple : " + str(test_tup))
  
# Remove similar element rows in tuple Matrix
# using set() + generator expression
res = tuple(ele for ele in test_tup if len(set(ele)) > 1)
  
# printing result
print("The tuple after removal of like-element rows : " + str(res))
Producción :

The original tuple : ((1, 3, 5), (2, 2, 2), (9, 10, 10), (4, 4, 4))
The tuple after removal of like-element rows : ((1, 3, 5), (9, 10, 10))

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 *