Remove all duplicates from a given string in Python

We are given a string and we need to remove all duplicates from it? What will be the output if the order of character matters?

Input : geeksforgeeks
Output : efgkos

Recommended: Please try your approach on {IDE} first, before moving on to the solution.

This problem has existing solution please refer Remove all duplicates from a given string.
Method 1: from collections import OrderedDict. Function to remove all duplicates from string. and order does not matter. def removeDupWithoutOrder(str):

# set() --> A Set is an unordered collection
#        data type that is iterable, mutable,
#        and has no duplicate elements.
# "".join() --> It joins two adjacent elements in
#            iterable with any symbol defined in
#            "" ( double quotes ) and returns a
#            single string
return "".join(set(str))
Function to remove all duplicates from string. and keep the order of characters same. def removeDupWithOrder(str): return “”.join(OrderedDict.fromkeys(str)). Driver program. if name == “main“: str = “geeksforgeeks”. print (“Without Order = “,removeDupWithoutOrder(str)). print (“With Order = “,removeDupWithOrder(str))


Without Order =  egfkosr
With Order    =  geksfor

Method 2: def removeDuplicate(str):
print(“Without Order:”,s)
for i in str:
if(i in t):
print(“With Order:”,t)


Output: Without Order: rofgeks With Order: geksfor

What do OrderedDict and from keys() do ? An OrderedDict is a dictionary that remembers the order of the keys that were inserted first. If a new entry overwrites an existing entry the original insertion position is left unchanged. For example see below code snippet : from collections import OrderedDict. ordinary_dictionary = {}. ordinary_dictionary[‘a’] = 1. ordinary_dictionary[‘b’] = 2. ordinary_dictionary[‘c’] = 3. ordinary_dictionary[‘d’] = 4. ordinary_dictionary[‘e’] = 5. Output = {‘a’: 1, ‘c’: 3, ‘b’: 2, ‘e’: 5, ‘d’: 4} .print. (ordinary_dictionary) .ordered_dictionary = OrderedDict(). ordered_dictionary[‘a’] = 1. ordered_dictionary[‘b’] = 2. ordered_dictionary[‘c’] = 3. ordered_dictionary[‘d’] = 4. ordered_dictionary[‘e’] = 5. Output = {‘a’:1,’b’:2,’c’:3,’d’:4,’e’:5}. print (ordered_dictionary)

fromkeys() creates a new dictionary with keys from seq and values set to value and returns list of keys, fromkeys(seq[, value]) is the syntax for fromkeys() method.

Parameters :

  • seq : This is the list of values which would be used for dictionary keys preparation.
  • value : This is optional, if provided then value would be set to this value.
    • For example see below code snippet : from collections import OrderedDict. seq = (‘name’, ‘age’, ‘gender’). dict = OrderedDict.fromkeys(seq). Output = {‘age’: None, ‘name’: None, ‘gender’: None}. print (str(dict)). dict = OrderedDict.fromkeys(seq, 10). Output = {‘age’: 10, ‘name’: 10, ‘gender’: 10}. print (str(dict))

Leave a Reply