Lets say I have a list:
t = [('a', 1), ('a', 6), ('b', 2), ('c', 3), ('c', 5), ('d', 4)]
There are two tuples with ‘a’ as the first element, and two tuples with ‘c’ as the first element. I want to only keep the first instance of each, so I end up with:
t = [('a', 1), ('b', 2), ('c', 3), ('d', 4)]
How can I achieve that?
Advertisement
Answer
You can use a dictionary to help you filter the duplicate keys:
>>> t = [('a', 1), ('a', 6), ('b', 2), ('c', 3), ('c', 5), ('d', 4)] >>> d = {} >>> for x, y in t: ... if x not in d: ... d[x] = y ... >>> d {'a': 1, 'b': 2, 'c': 3, 'd': 4} >>> t = list(d.items()) >>> t [('a', 1), ('b', 2), ('c', 3), ('d', 4)]