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