Skip to main content

25. Sets

1. Introduction​

A set is an unordered collection of unique items.
Sets are useful when you want to store values without duplicates or perform mathematical set operations.


2. Creating Sets​

Sets use curly braces {} or the set() function:

numbers = {1, 2, 3, 3, 4}
print(numbers) # {1, 2, 3, 4} (duplicates removed)

empty_set = set() # correct way

⚠️ {} creates an empty dictionary, not a set.


3. Adding and Removing Elements​

fruits = {"apple", "banana"}

fruits.add("cherry")
print(fruits) # {'apple', 'banana', 'cherry'}

fruits.remove("banana") # ❌ KeyError if not found
fruits.discard("pear") # ✅ safe, no error if not found

popped = fruits.pop() # removes a random element
print(popped)

4. Checking Membership​

animals = {"cat", "dog", "bird"}
print("cat" in animals) # True
print("lion" not in animals) # True

5. Set Operations​

Sets support union, intersection, difference, and symmetric difference:

a = {1, 2, 3}
b = {3, 4, 5}

print(a | b) # Union → {1, 2, 3, 4, 5}
print(a & b) # Intersection → {3}
print(a - b) # Difference → {1, 2}
print(a ^ b) # Symmetric difference → {1, 2, 4, 5}

6. Updating Sets​

a = {1, 2}
a.update([2, 3, 4])
print(a) # {1, 2, 3, 4}

7. Frozen Sets​

A frozenset is an immutable set:

fs = frozenset([1, 2, 3])
# fs.add(4) # ❌ Error: frozenset is immutable

You can use frozensets as dictionary keys or store them in other sets.


8. Iterating Through Sets​

colors = {"red", "green", "blue"}
for color in colors:
print(color)

(Remember: order is not guaranteed.)


9. When to Use Sets​

  • Removing duplicates from a collection.
  • Checking membership quickly.
  • Performing mathematical set operations.
  • Using frozensets for immutable collections.

10. Next Steps​

✅ You now understand sets and frozensets.
In the next chapter, we’ll explore dictionaries, Python’s key-value data structure.