Python | Eliminar tuplas duplicadas de la lista de tuplas

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))
Producción:

[(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))
Producción:

[(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))
Producción:

[[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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *