I'm delighted to welcome you to our Python Sets lesson! Remember, sets are like lists or tuples, except they can only hold unique elements. They're especially useful when you need to guarantee that elements in a collection appear only once.
In this lesson, you'll consolidate your knowledge of creating and operating on sets. You will learn about the special frozen sets
and discover how sets enhance performance. Ready, Set, Go!
Let's begin by creating a set in Python. It can be done either by the set()
function or with {}
syntax.
Python provides methods to manipulate sets, such as add()
, in
, remove()
, and discard()
.
Both remove()
and discard()
methods are used for removing elements from a set, but they behave slightly differently:
remove()
: Removes a specified element from the set. If the element is not found, it raises aKeyError
.discard()
: Also removes a specified element from the set. However, if the element is not found, it does nothing, and no error is raised.
Python provides built-in operations such as union
, intersection
, and difference
for sets.
union()
: Combines elements from both sets, excluding any duplicates. In this case, the result is a set containing{1, 2, 3, 4, 5, 6}
.intersection()
: Returns a set with only the elements that are common to both sets. For these sets, the intersection is{3, 4}
.difference()
: Returns a set containing elements that are in the first set but not in the second set. Here, the result is{1, 2}
forset_1.difference(set_2)
.
A frozenset
is an immutable set that cannot be modified once declared. It is similar to an immutable version of sets, much like the function of tuples in the family of sets.
Frozen sets are handy when you wish to use a set as a dictionary key but can't use regular sets.
One of the key advantages of sets is their faster performance in membership tests, which results from their use of hash tables.
- Membership Test with Set: Thanks to hash tables, sets can check for membership in constant time, leading to quick lookup times. The time taken for checking membership in the set is remarkably low, as shown by the
Time taken for set
. - Membership Test with List: Lists require a linear search to check for membership, which results in longer lookup times as the list grows. The time taken for checking membership in the list is noticeably higher, demonstrated by
Time taken for list
.
Congratulations! You've just explored creating and manipulating sets, performing set operations, using frozen sets, and reaping the performance benefits of sets.
Remember, practice is key to solidifying your understanding. Happy coding!
