Python | Eliminar tuplas que tienen el primer valor duplicado de la lista de tuplas dada

Dada una lista de tuplas, la tarea es eliminar todas las tuplas que tengan primeros valores duplicados de la lista de tuplas dada.

Ejemplos:

Input:  [(12.121, 'Tuple1'), (12.121, 'Tuple2'), 
         (12.121, 'Tuple3'), (923232.2323, 'Tuple4')]
Output:  [(12.121, 'Tuple1'), (923232.2323, 'Tuple4')]

Input:  [('Tuple1', 121), ('Tuple2', 125), 
         ('Tuple1', 135), ('Tuple4', 478)]
Output:  [('Tuple1', 121), ('Tuple2', 125), ('Tuple4', 478)]

A continuación se presentan algunas formas de lograr la tarea anterior.

Método #1: Usar la iteración

# Python code to remove tuples having 
# duplicate first value from given
# list of tuples
  
# Input list initialization
Input = [(12.121, 'Geeksforgeeks is best'), 
         (19212.22, 'India is best'), 
         (12.121, 'Cyware is best.'),
         (923232.2323, 'Jiit is best')]
  
# using set
visited = set()
  
# Output list initialization
Output = []
  
# Iteration
for a, b in Input:
    if not a in visited:
        visited.add(a)
        Output.append((a, b))
  
# Printing
print("Initial list of tuple is \n", Input)
print("List of tuple after removing duplicates:\n ", Output)
Producción:

La lista inicial de tuplas es
[(12.121, ‘Geeksforgeeks es mejor’), (19212.22, ‘India es mejor’), (12.121, ‘Cyware es mejor’), (923232.2323, ‘Jiit es mejor’)]

Lista de tuplas después de eliminar duplicados:
[(12.121, ‘Geeksforgeeks es mejor’), (19212.22, ‘India es mejor’), (923232.2323, ‘Jiit es mejor’)]

 
Método #2: Usar la comprensión de listas

# Python code to remove tuples having 
# duplicate first value from given
# list of tuples
  
# Input list initialization
Input = [(12.121, 'Geeksforgeeks is best'), 
         (19212.22, 'India is best'), 
         (19212.22, 'Cyware is best.'), 
         (923232.2323, 'Jiit is best')]
  
# Using set
seen = set()
  
# using list comprehension
Output = [(a, b) for a, b in Input 
         if not (a in seen or seen.add(a))]
  
# Printing
print("Initial list of tuple is" \n, Input)
print("\nList of tuple after removing duplicates \n", Output)
Producción:

La lista inicial de tuplas es
[(12.121, ‘Geeksforgeeks es mejor’), (19212.22, ‘India es mejor’), (19212.22, ‘Cyware es mejor’), (923232.2323, ‘Jiit es mejor’)]

Lista de tuplas después de eliminar duplicados [(12.121, ‘Geeksforgeeks es mejor’), (19212.22, ‘India es mejor’), (923232.2323, ‘Jiit es mejor’)]

 
Método #3: Usando itertools

# Python code to remove tuples having 
# duplicate first value from given
# list of tuples
  
import itertools
  
# Input list initialization
Input = [(12.121, 'Geeksforgeeks is best'), 
         (19212.22, 'India is best'), 
         (923232.2323, 'Cyware is best.'), 
         (923232.2323, 'Jiit is best')]
  
# Using groupby
Output = ([next(b) for a, b in itertools.groupby(
                         Input, lambda y: y[0])])
  
# Printing
print("Initial list of tuple is\n", Input)
print("\nList of tuple after removing duplicates\n", Output)
Producción:

La lista inicial de tuplas es
[(12.121, ‘Geeksforgeeks es mejor’), (19212.22, ‘India es mejor’), (923232.2323, ‘Cyware es mejor’), (923232.2323, ‘Jiit es mejor’)]

Lista de tuplas después de eliminar duplicados
[(12.121, ‘Geeksforgeeks es mejor’), (19212.22, ‘India es mejor’), (923232.2323, ‘Cyware es mejor’)]

 
Método #4: Uso de OrderedDict

Esta es la forma más elegante de eliminar duplicados usando OrderedDict.

# Python code to remove tuples having 
# duplicate first value from given
# list of tuples
  
from collections import OrderedDict
  
# Input list initialization
Input = [(12.121, 'Geeksforgeeks is best'), 
         (19212.22, 'India is best'), 
         (19212.22, 'Cyware is best.'), 
         (923232.2323, 'Jiit is best')]
  
# Using orderedDIct
Output = OrderedDict(Input).items()
  
# Printing
print("Initial list of tuple is\n", Input)
print("\nList of tuple after removing duplicates\n", Output)
Producción:

La lista inicial de tuplas es
[(12.121, ‘Geeksforgeeks es mejor’), (19212.22, ‘India es mejor’), (19212.22, ‘Cyware es mejor’), (923232.2323, ‘Jiit es mejor’)]

Lista de tuplas después de eliminar duplicados
odict_items([(12.121, ‘Geeksforgeeks es mejor’), (19212.22, ‘Cyware es mejor.’), (923232.2323, ‘Jiit es mejor’)])

Publicación traducida automáticamente

Artículo escrito por everythingispossible 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 *