Open In App

Python Ordered Set

Last Updated : 27 Feb, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

We are going to learn about how can we create the order set by using different methods using Python. An ordered set is a data structure in which the data order can be preserved and it is used when we require the position of data to remain fixed in the order we have inserted. It is to be noted that, We are able to iterate the ordered set which means the ordered set once we declare the position of the value is fixed. But in the set, you will get a subscribable error while iterating because positions are not fixed in the set.

Example:

input_dataSet = {“Prince”, “Aditya”, “Praveer”, “Shiv”}

Output in case of unordered set: {“Aditya, “Prince”, “Shiv”, “Praveer”}, It can be random position on your side

Output in case of ordered set: {“Prince”, “Aditya”, “Praveer”, “Shiv”}

Explanation: As you know in Python if you print this set more one time than, every time you will getting the randomposition of the items for the same dataset.

But in case of ordered set you will getting the same dataset every time in same order you had inserted items.

There are three methods to create the ordered sets in Python:

  • By using a dictionary data structure 
  • By using the list data structure
  • By using the ordered set module(or class) 

Ordered set using the dictionary data structure

We can use the dictionary data structure to create the ordered set because the dictionary is itself the ordered data structure in which we will use set items as keys because keys are unique in the dictionary and at the place of value we can create the empty string. Let’s take a look at implementation as explained below:

Python3




# Creation of ordered set using the dict data structure
dictionary = {"Prince": "", "Aditya": "",
              "Praveer": "", "Prince": "", "Shiv": ""}
print(dictionary)
# For accessing only keys from the dictionary
for key in dictionary.keys():
    print(key, end=" ")


Output:

{'Prince': '', 'Aditya': '', 'Praveer': '', 'Shiv': ''}
Prince Aditya Praveer Shiv

Ordered set using the list data structure

We can use the list data structure to create the order set by using removing the duplicate elements from it. Let’s take a look at implementation as explained below: 

Python3




def removeduplicate(data):
    countdict = {}
    for element in data:
        if element in countdict.keys():
             
            # increasing the count if the key(or element)
            # is already in the dictionary
            countdict[element] += 1
        else:
            # inserting the element as key  with count = 1
            countdict[element] = 1
    data.clear()
    for key in countdict.keys():
        data.append(key)
 
 
dataItem = ["Prince", "Aditya", "Praveer", "Prince", "Aditya", "Shiv"]
print("Before removing duplicate elements from dataItems", dataItem)
removeduplicate(dataItem)
print("Created ordered set by removing duplicate elements", dataItem)


Output:

Before removing duplicate elements from dataItems ['Prince', 'Aditya', 'Praveer', 'Prince', 'Aditya', 'Shiv']
Created ordered set by removing duplicate elements ['Prince', 'Aditya', 'Praveer', 'Shiv']

Ordered set using the ordered set module(or class)

In default, you have an unordered set in Python but for creating the ordered set you will have to install the module named ordered-set by pip package installer as mentioned below:

How to Install the ordered set module

By using the pip package installer download the ordered-set module as mentioned below:-

pip install ordered_set

Syntax of orderedSet:

orderedSet(Listname)

Example:

Now,  for more clarification let’s iterate the ordered set because the set cannot be iterated as mentioned below:

Python3




from ordered_set import OrderedSet
 
createOrderedSet = OrderedSet(
    ['GFG', 'is', 'an', 'Excellent',
     'Excellent', 'platform'])
 
print(createOrderedSet)
 
# we are able to iterate it similar to list data type
for index in range(len(createOrderedSet)):
    print(createOrderedSet[index], end=" ")


Output:

OrderedSet(['GFG', 'is', 'an', 'Excellent', 'platform'])
GFG is an Excellent platform 

Time complexity: O(n), where n is the number of elements in the Ordered Set

Auxiliary space: O(n), where n is the number of elements in the Ordered  Set 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads