Dada una lista de tuplas, escriba un programa en Python para eliminar todas las tuplas duplicadas de la lista dada.
Ejemplos:
Input : [(1, 2), (5, 7), (3, 6), (1, 2)] Output : [(1, 2), (5, 7), (3, 6)] Input : [('a', 'z'), ('a', 'x'), ('z', 'x'), ('a', 'x'), ('z', 'x')] Output : [('a', 'z'), ('a', 'x'), ('z', 'x')]
Método #1: Comprensión de listas
Este es un enfoque ingenuo para usar la comprensión de listas. Aquí, usamos dos bucles for y establecemos la estructura de datos para cancelar todos los duplicados.
# Python3 program to remove duplicate # tuples from list of tuples def removeDuplicates(lst): return [t for t in (set(tuple(i) for i in lst))] # Driver code lst = [(1, 2), (5, 7), (3, 6), (1, 2)] print(removeDuplicates(lst))
[(1, 2), (5, 7), (3, 6)]
Método #2: Comprensión de listas (enfoque eficiente)
Este método es eficiente en comparación con el método anterior, aquí usamos un solo bucle for dentro de la comprensión de la lista y luego lo convertimos para establecer para eliminar duplicados y luego convertirlo nuevamente en la lista.
# Python3 program to remove duplicate # tuples from list of tuples def removeDuplicates(lst): return list(set([i for i in lst])) # Driver code lst = [(1, 2), (5, 7), (3, 6), (1, 2)] print(removeDuplicates(lst))
[(1, 2), (5, 7), (3, 6)]
Método n.º 3: método Python enumerate()
# Python3 program to remove duplicate # tuples from list of tuples def removeDuplicates(lst): return [[a, b] for i, [a, b] in enumerate(lst) if not any(c == b for _, c in lst[:i])] # Driver code lst = [(1, 2), (5, 7), (3, 6), (1, 2)] print(removeDuplicates(lst))
[[1, 2], [5, 7], [3, 6]]
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA