Given a list of tuples, the task is to remove all tuples having duplicate first values from the given list of tuples.
Examples:
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)]
Below are some ways to achieve the above task.
Method #1: Using Iteration
# 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) |
Initial list of tuple is
[(12.121, ‘Geeksforgeeks is best’), (19212.22, ‘India is best’), (12.121, ‘Cyware is best.’), (923232.2323, ‘Jiit is best’)]List of tuple after removing duplicates:
[(12.121, ‘Geeksforgeeks is best’), (19212.22, ‘India is best’), (923232.2323, ‘Jiit is best’)]
Method #2: Using list comprehension
# 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) |
Initial list of tuple is
[(12.121, ‘Geeksforgeeks is best’), (19212.22, ‘India is best’), (19212.22, ‘Cyware is best.’), (923232.2323, ‘Jiit is best’)]List of tuple after removing duplicates [(12.121, ‘Geeksforgeeks is best’), (19212.22, ‘India is best’), (923232.2323, ‘Jiit is best’)]
Method #3: Using 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) |
Initial list of tuple is
[(12.121, ‘Geeksforgeeks is best’), (19212.22, ‘India is best’), (923232.2323, ‘Cyware is best.’), (923232.2323, ‘Jiit is best’)]List of tuple after removing duplicates
[(12.121, ‘Geeksforgeeks is best’), (19212.22, ‘India is best’), (923232.2323, ‘Cyware is best.’)]
Method #4: Using OrderedDict
This is the most elegant way to remove duplicates is using 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) |
Initial list of tuple is
[(12.121, ‘Geeksforgeeks is best’), (19212.22, ‘India is best’), (19212.22, ‘Cyware is best.’), (923232.2323, ‘Jiit is best’)]List of tuple after removing duplicates
odict_items([(12.121, ‘Geeksforgeeks is best’), (19212.22, ‘Cyware is best.’), (923232.2323, ‘Jiit is best’)])
Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.
To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.