Introduction

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!

Creating and Manipulating Sets

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 a KeyError.
  • discard(): Also removes a specified element from the set. However, if the element is not found, it does nothing, and no error is raised.
Set Operations

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} for set_1.difference(set_2).
Frozen Sets

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.

Performance Benefits of 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.
Lesson Summary

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!

Sign up
Join the 1M+ learners on CodeSignal
Be a part of our community of 1M+ users who develop and demonstrate their skills on CodeSignal