In this Part 4 of Python Data Structure series, we will be discussing what is a set, how it differs from other data structure in python, how to create set objects, delete set objects and methods of set objects.
- A set object is an unordered collection of distinct hashable objects.
- Set automatically removes duplicate items from the object.
- Since set objects are unordered, no indexing and slicing operation is supported.
There are currently two built-in set types.
- set – Since it is mutable, it has no hash value and cannot be used as either a dictionary key or as an element of another set.
- frozenset – Immutable and hashable – its contents cannot be altered after it is created; it can, therefore, be used as a dictionary key or as an element of another set.
Construct Set Object
Create a set using constructor method “set()” or using curly braces with comma separating the elements “{a,b,c}”.
NOTE: you cannot construct a set object through empty braces as it will create dictionary object.
Set Methods
Use built-in “dir()” function to list the available set methods and attributes.
Add Elements to Set Object
As already stated, set is a mutable type. You can add, delete, update your set object once it is created.
Let us talk about two set method add and update.
- add(elem) method – This method adds a single element to a set object.
- update(*others) method – This method adds multiple elements to a set object. You can pass mutable/immutable objects as an argument in the update method.
NOTE: Duplicates will be automatically removed.
Remove / Clear Elements From a Set Object
As you have seen previously in other data structure topic (list, tuples, dictionary), for set also you can use built-in keyword “del” to delete the set object from namespace (i.e Memory).
Below are the methods for set objects to remove elements.
- clear() – Will clear all the elements making the set empty. This clear() method is available in other data structures providing the same functionality.
- pop() – Removes arbitrary elements.
- discard(elem) – If the item is not found in the set object then “discard()” method will not raise any error.
- remove(elem) – Same like “discard()” method but it will raise KeyError when an item is not found.
Set Operations
Set provides methods to perform mathematical operations such as intersection, union, difference, and symmetric difference. Remember “Venn diagram” from your highs school days?
We will take a look at the below methods on how mathematical operations are performed.
- union
- intersection
- intersection_update
- symmetric_difference
- symmetric_difference_update
- difference
- difference_update
- isdisjoint
- issubset
- issuperset
Union, Intersectio, Difference, Symmetric_Difference
- union(*other) – Return a new set with elements from the set and all others.
- intersection(*other) – Return a new set with elements common to the set and all others.
- difference(*others) – Return a new set with elements in the set that are not in the others.
- symmetric_difference(other) – Return a new set with elements in either the set or other but not both.
Intersection_Update
intersection_update(*others) – Update the set, keeping only elements found in it and all others.
Difference Update
difference_update(*others) – Update the set, keeping only elements found in it and all others.
Symmetric_Difference_Update
symmetric_difference_update(other) – Update the set, keeping only elements found in either set, but not in both.
Isdisjoint, Issubset, Issuperset
- isdisjoint(other) – Return True if the set has no elements in common with other. Sets are disjoint if and only if their intersection is the empty set.
- issubset() – Test whether every element in the set is in another.
- issuperset() – Test whether every element in the other is in the set.
Copy() Method
You can create an identical copy of existing set object using copy() method. This method is also available for other data structure types like list, dictionary etc…
Delete the set object from the namespace using a built-in “del” keyword.
Frozen Set
- Frozen set is immutable type. Once constructed you cannot add, remove or update elements from the list.
- Frozen set being immutable are hashable, can be used as a “key” for dictionaries or elements for another set object.
- Frozen set is constructed using “frozenset()” function.
- Frozen set provides same set of methods in comparison to “set” like union(), intersection, copy(), isdisjoint() etc.
Summary
In this article you have seen what is set, difference between set and frozen set, how to create and access the set elements, set methods etc…