Back

Explore Courses Blog Tutorials Interview Questions
0 votes
3 views
in Python by (11.4k points)

Is there a built-in that removes duplicates from a list in Python, whilst preserving order? I know that I can use a set to remove duplicates, but that destroys the original order. I also know that I can roll my own like this:

def uniq(input): 

output = [] 

for x in input: 

if x not in output: 

output.append(x)

return output

But I'd like to avail myself of a built-in or a more Pythonic idiom if possible.

1 Answer

0 votes
by (106k points)

There are many ways to remove duplicate from Python List some are:-

  • We can remove duplicate from List using the more_iterable library.

  • The iterable library comes under Python itertools module which is a collection of tools for handling iterators.

  • iterators are data types that can be used in a for loop. The most common iterator in Python is the List.

  • For installing this library you can run the following commands: (pip install more_itertools).

from more_itertools import unique_everseen

items = [1, 2, 0, 1, 3, 2]

list(unique_everseen(items)) 

image

  • Another way we can solve this problem using the ordered_dict library.

  • The dict subclass always remembers the entire order of any collection.

from collections import OrderedDict

items = [1, 2, 0, 1, 3, 2]

list(OrderedDict.fromkeys(items))

image

Related questions

+3 votes
2 answers
+3 votes
2 answers
+1 vote
2 answers
0 votes
2 answers
asked May 30, 2019 in Python by Anvi (10.2k points)
Welcome to Intellipaat Community. Get your technical queries answered by top developers!

29.3k questions

30.6k answers

501 comments

104k users

Browse Categories

...