Programa de Python para eliminar tuplas duplicadas independientemente del orden

Dada una lista de tuplas binarias, la tarea es escribir un programa en Python para eliminar todas las tuplas que sean duplicadas independientemente del orden, es decir, eliminar si contiene elementos similares, independientemente del orden.

Entrada: test_list = [(4, 6), (1, 2), (9, 2), (2, 1), (5, 7), (6, 4), (9, 2)]

Salida: [(1, 2), (5, 7), (4, 6), (2, 9)]

Explicación: (2, 1), (6, 4) se eliminan porque (1, 2), (4, 6) ya están incluidos.

Entrada: test_list = [(4, 7), (1, 2), (9, 2), (2, 1), (5, 7), (7, 4), (9, 2)]

Salida: [(1, 2), (5, 7), (4, 7), (2, 9)]

Explicación: (2, 1), (7, 4) se eliminan porque (1, 2), (4, 7) ya están incluidos.

Método 1: Usar map() , sorted() , set() y list()

En esto, ordenamos cada elemento de la tupla usando sorted() y map(). Luego, el resultado se convierte en un conjunto para eliminar los duplicados. Por fin, el conjunto se convierte en lista.

Ejemplo:

Python3

# initializing list
test_list = [(4, 6), (1, 2), (9, 2), (2, 1), (5, 7), (6, 4), (9, 2)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# using map() to get all sorted
# set removes duplicates
res = list({*map(tuple, map(sorted, test_list))})
  
# printing result
print("Tuples after removal : " + str(res))

Producción:

La lista original es: [(4, 6), (1, 2), (9, 2), (2, 1), (5, 7), (6, 4), (9, 2)]

Tuplas después de la eliminación: [(2, 9), (1, 2), (4, 6), (5, 7)]

Método 2: usar la comprensión de listas, sorted() y set()

Este es un enfoque ingenuo para la solución requerida. En esto, cada elemento de la lista se ordena usando la comprensión de la lista y se ordena(), luego el resultado se vuelve a convertir para eliminar los duplicados usando set().

Ejemplo:

Python3

# initializing list
test_list = [(4, 6), (1, 2), (9, 2), (2, 1), (5, 7), (6, 4), (9, 2)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# sorting tuples
temp = [tuple(sorted(sub)) for sub in test_list]
  
# removing duplicates
res = list(set(temp))
  
# printing result
print("Tuples after removal : " + str(res))

Producción:

La lista original es: [(4, 6), (1, 2), (9, 2), (2, 1), (5, 7), (6, 4), (9, 2)]

Tuplas después de la eliminación: [(2, 9), (1, 2), (4, 6), (5, 7)]

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 *