Python - How To Create Ordered Set in Python

ID : 483

viewed : 185

Tags : PythonPython Set

vote vote

95

This tutorial will discuss the OrderedSet class in Python.

Create Ordered Sets With the OrderedSet Class in Python

To start, let’s first define what a set means in Python. It’s a well-defined collection of distinct objects that are somehow related. This definition does not contain any order. So by definition, a set has no order in it.

However, if such a scenario arises that we have to preserve the original order of the set elements, we can use the OrderedSet class. To use the OrderedSet class, we have to install the first on our device with the Python package manager. The command to install the ordered-set package is given below.

pip install ordered-set 

Now, we can create a set that preserves the order of each set element. This process is demonstrated in the following program.

from ordered_set import OrderedSet setABC = OrderedSet(['A', 'B', 'C']) print(setABC) 

Output:

OrderedSet(['A', 'B', 'C']) 

We created an ordered set and displayed the value at each index in order with the OrderedSet class in the code above. This OrderedSet is a mutable data structure that is a hybrid between the list and set data structures. So, we have to initialize this set with a list; this way, the set keeps the index of each element.

To simplify the indexing, the add() function returns the index of the new element added into the set; this is shown in the following process below.

print(setABC.add('D')) 

Output:

3 

We added another element to our setABC and displayed the value returned by the add() function in the code above. We can also get the index of a specific element with the index() function; this is shown in the following code snippet.

print(setABC.index('C')) 

Output:

2 

We retrieved the index of the element C inside the setABC set with the index() function in the code above. We can also perform the usual operations of sets like union, intersection, and difference on these ordered sets with the |, &, and - operators, respectively.

The following code example demonstrates how we can perform union on an ordered set.

from ordered_set import OrderedSet setABC = OrderedSet(['A', 'B', 'C', 'D']) setDEF = OrderedSet(['D','E','F','G']) solutionSet = setABC | setDEF print(solutionSet) 

Output:

OrderedSet(['A', 'B', 'C', 'D', 'E', 'F', 'G']) 

We calculated the union of the sets setABC and setDEF with the union operator | in the code above. The following program below shows us how we can perform intersection on an ordered set.

from ordered_set import OrderedSet setABC = OrderedSet(['A', 'B', 'C', 'D']) setDEF = OrderedSet(['D','E','F','G']) solutionSet = setABC & setDEF print(solutionSet) 

Output:

OrderedSet(['D']) 

We calculated the intersection of the sets setABC and setDEF with the intersection operator & in the code above. The following code example below shows us how we can calculate the difference between two ordered sets.

from ordered_set import OrderedSet setABC = OrderedSet(['A', 'B', 'C', 'D']) setDEF = OrderedSet(['D','E','F','G']) solutionSet = setABC - setDEF print(solutionSet) 

Output:

OrderedSet(['A', 'B', 'C']) 

We calculated the difference of the sets setABC and setDEF with the difference operator - in the code above.

By default, Python does not support ordered sets. Still, we can install an external package, ordered-set, which gives us the functionality of creating ordered sets. This process is supported on Python version 2.6 and higher.

These ordered sets are a hybrid of the original lists and sets in Python. So, we have to initialize these sets with a list. These new sets provide us all the usual functionalities of sets like union, intersection, and difference.

  • Related HOW TO?