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