A set is a container that enables a way to retrieve unique data inside this container.
It means that if you want to be sure that only one occurrence is present in a container, you have to choose the set one.
For the form, we have to use the curly brackets to declare a set.
Let's see examples in detail with this tutorial of the Python 3 set data type.
Notice that the set container doesn't sort itself.
To sort it, just use the sorted(mySet) method (see example 8 below).
In the 8th example, we can see that the result is not a set anymore, but a list.
Indeed, the result is surrounded by square brackets and not curly brackets.
I define a function to help in this exercise, I called it setManager() and takes two parameters.
I am going to show how to use the set container by a classical way and also with their methods.
# BEGIN def setManager(name, theSet): print(name) print(str(theSet) + "\n") # END mySet1 = {"Hello", "World!", "Hello"} setManager("Set1 --> declaring a set of strings (unique of course).", mySet1) mySet2 = set("aAaBb cCCC Dd") setManager("Set2 --> retrieve only one letter of each (not sorted).", mySet2) mySet3 = set("abBCDedFE") setManager("Set3 --> retrieve only one letter of each (not sorted).", mySet3) mySet4 = mySet2 | mySet3 setManager("Set4 --> retrieve all different letters from Set2 and Set3 (not sorted).", mySet4) mySet5 = mySet2 & mySet3 setManager("Set5 --> retrieve all same letters from Set2 and Set3 (not sorted).", mySet5) mySet6 = mySet2 - mySet3 setManager("Set6 --> retrieve all letters in Set2 but not in Set3 (not sorted).", mySet6) mySet7 = mySet2 ^ mySet3 setManager("Set7 --> retrieve all letters from Set2 and Set3 but not from both (not sorted).", mySet7) mySet8 = sorted(mySet2) setManager("Set8 --> retrieve all letters sorted.", mySet8)
Set1 --> declaring a set of strings (unique of course). {'World!', 'Hello'} Set2 --> retrieve only one letter of each (not sorted). {'a', 'A', 'c', 'B', 'D', ' ', 'C', 'b', 'd'} Set3 --> retrieve only one letter of each (not sorted). {'a', 'C', 'B', 'e', 'D', 'F', 'b', 'E', 'd'} Set4 --> retrieve all different letters from Set2 and Set3 (not sorted). {'a', 'A', 'c', 'B', 'e', 'D', ' ', 'F', 'C', 'b', 'E', 'd'} Set5 --> retrieve all same letters from Set2 and Set3 (not sorted). {'a', 'C', 'B', 'D', 'b', 'd'} Set6 --> retrieve all letters in Set2 but not in Set3 (not sorted). {'A', ' ', 'c'} Set7 --> retrieve all letters from Set2 and Set3 but not from both (not sorted). {'A', ' ', 'e', 'F', 'c', 'E'} Set8 --> retrieve all letters sorted. [' ', 'A', 'B', 'C', 'D', 'a', 'b', 'c', 'd']
# BEGIN def setManager(name, theSet): print(name) print(str(theSet) + "\n") # END mySet = set("abcdefghij") setManager("Initialization", mySet) mySet.add("Hello World!") setManager("add() --> add an element", mySet) mySet2 = mySet.copy() setManager("copy() --> return a copy not linked with the main set", mySet2) mySet2.clear() setManager("clear() --> remove all elements from mySet2", mySet2) setManager("Testing --> mySet is still full", mySet) mySet3 = set("abcDEfghijKLmno") setManager("Initializing mySet3", mySet3) mySet = mySet.difference(mySet3) setManager("difference() --> retrieve all elements present in mySet but not in mySet3", mySet) mySet.difference_update(mySet3) setManager("difference_update() --> same as difference() but without a new assignment", mySet) mySet.discard("e") setManager("discard() --> remove an element if it is found in the set", mySet) setManager("Clear elements in mySet", mySet.clear()) setManager("Clear elements in mySet3", mySet3.clear()) mySet = set("abcdefgh") setManager("Initialize mySet", mySet) mySet3 = set("fghijk") setManager("Initialize mySet3", mySet3) mySet = mySet.intersection(mySet3) setManager("intersection() --> retrieve only elements present in mySet and mySet3", mySet) mySet.intersection_update(mySet3) setManager("intersection_update() --> same as intersection() but without a new assignment", mySet) myBoolean = mySet.isdisjoint(mySet3) setManager("isdisjoint() --> return True if there is no intersection between mySet and mySet3, otherwise return False", myBoolean) setManager("Elements in mySet", mySet) setManager("Elements in mySet3", mySet3 ) mySub = mySet.issubset(mySet3) setManager("issubset() --> test if all elements of mySet are present in mySet3", mySub) mySuper = mySet.issuperset(mySet3) setManager("issuperset() --> test if all elements of mySet3 are present in mySet", mySuper) mySet.pop() setManager("pop() --> remove the last item of mySet", mySet) mySet.remove("f") setManager("remove() --> remove the element specified in parameter, if the element doesn't exist, return a KeyError", mySet) mySet.add("f") mySet.add("i") mySet.add("k") mySet.add("l") setManager("Elements in mySet", mySet) setManager("Elements in mySet3", mySet3) mySet4 = mySet.symmetric_difference(mySet3) setManager("symmetric_difference() --> return all elements present in exactly one set but not in both", mySet4) mySet.symmetric_difference_update(mySet3) setManager("symmetric_difference() --> same as symmetric_difference but without a new assignment", mySet) mySet = mySet.union(mySet3) setManager("union() --> add all elements of mySet3 in mySet", mySet) mySet.update(set("Hello")) setManager("update() --> add all different characters in the current set", mySet)
Initialization {'a', 'c', 'b', 'e', 'd', 'g', 'f', 'i', 'h', 'j'} add() --> add an element {'a', 'c', 'b', 'e', 'd', 'g', 'f', 'i', 'h', 'j', 'Hello World!'} copy() --> return a copy not link with the main set {'a', 'c', 'b', 'e', 'd', 'g', 'f', 'i', 'h', 'j', 'Hello World!'} clear() --> remove all elements from mySet2 set() Testing --> mySet is still full {'a', 'c', 'b', 'e', 'd', 'g', 'f', 'i', 'h', 'j', 'Hello World!'} Initializing mySet3 {'a', 'c', 'b', 'E', 'D', 'g', 'f', 'i', 'h', 'K', 'j', 'm', 'L', 'o', 'n'} difference() --> retrieve all elements present in mySet but not in mySet3 {'Hello World!', 'e', 'd'} difference_update() --> same as difference() but without a new assignment {'Hello World!', 'e', 'd'} discard() --> remove an element if it is found in the set {'Hello World!', 'd'} Clear elements in mySet None Clear elements in mySet3 None Initialize mySet {'a', 'c', 'b', 'e', 'd', 'g', 'f', 'h'} Initialize mySet3 {'g', 'f', 'i', 'h', 'k', 'j'} intersection() --> retrieve only elements present in mySet and mySet3 {'h', 'g', 'f'} intersection_update() --> same as intersection() but without a new assignment {'h', 'g', 'f'} isdisjoint() --> return True if there is no intersection between mySet and mySet3, otherwise return False False Elements in mySet {'h', 'g', 'f'} Elements in mySet3 {'g', 'f', 'i', 'h', 'k', 'j'} issubset() --> test if all elements of mySet are present in mySet3 True issuperset() --> test if all elements of mySet3 are present in mySet False pop() --> remove the last item of mySet {'g', 'f'} remove() --> remove the element specified in parameter, if the element doesn't exist, return a KeyError {'g'} Elements in mySet {'g', 'f', 'i', 'k', 'l'} Elements in mySet3 {'g', 'f', 'i', 'h', 'k', 'j'} symmetric_difference() --> return all elements present in exactly one set but not in both {'h', 'j', 'l'} symmetric_difference() --> same as symmetric_difference but without a new assignment {'h', 'j', 'l'} union() --> add all elements of mySet3 in mySet {'g', 'f', 'i', 'h', 'k', 'j', 'l'} update() --> add all different characters in the current set {'e', 'g', 'f', 'i', 'h', 'k', 'j', 'l', 'o', 'H'}
An interesting data type.
Add new comment