Back to Python
2026-02-125 min read

Add Items to a Set in Python

Learn Add Items to a Set in Python step by step with clear examples and exercises.

Title: Add Items to a Set in Python

Why This Matters

Sets are an essential data structure in Python for managing unique elements efficiently. They allow us to perform operations like union, intersection, and difference on collections of distinct items. In this lesson, we will delve into the process of adding items to a set in Python, as well as common mistakes, practice questions, and frequently asked questions that will help you master this fundamental skill.

Prerequisites

Before proceeding with adding items to a set, it's crucial to have a strong understanding of the following concepts:

  • Basic Python syntax (variables, operators, loops)
  • Data structures in Python (lists, tuples, and dictionaries)
  • Understanding sets and their basic operations

Introduction to Sets

A set is an unordered collection of unique elements. In Python, you can create a set using curly braces {}, or the built-in set() constructor. Here's an example of creating a set:

my_set = {1, 2, 3}
print(my_set) # Output: {1, 2, 3}

Set Operations

Before diving into adding items to a set, let's briefly review some basic set operations. You can check if an element is in a set using the in keyword, and you can find the length of a set using the len() function:

my_set = {1, 2, 3}
print(2 in my_set) # Output: True
print(len(my_set)) # Output: 3

Core Concept

Adding Items to a Set

To add items to a set, you can use the add() method or the update() method. The add() method adds a single item to the set, while the update() method adds multiple items at once:

my_set = {1, 2, 3}
my_set.add(4)
print(my_set) # Output: {1, 2, 3, 4}

numbers = {1, 2, 3, 4, 5}
more_numbers = {6, 7, 8}
numbers.update(more_numbers)
print(numbers) # Output: {1, 2, 3, 4, 5, 6, 7, 8}

Adding Items from Another Set or List

You can also add items to a set from another set or list using the union() method. The union() method returns a new set that contains all elements from both sets:

set1 = {1, 2, 3}
set2 = {4, 5, 6}
new_set = set1.union(set2)
print(new_set) # Output: {1, 2, 3, 4, 5, 6}

You can also use union() with a list

numbers = [1, 2, 3]

more_numbers = [4, 5, 6]

new_set = set(numbers).union(set(more_numbers))

print(new_set) # Output: {1, 2, 3, 4, 5, 6}


### Adding Items Using the `|` Operator

Python also allows you to create a new set by combining two sets using the `|` operator. This operator returns a new set that contains all elements from both sets:

set1 = {1, 2, 3}

set2 = {4, 5, 6}

new_set = set1 | set2

print(new_set) # Output: {1, 2, 3, 4, 5, 6}


### Adding Items with Duplicates (and Removing Duplicates)

Sets in Python automatically remove any duplicate items when you add them. However, if you want to add duplicates and keep them, you can convert the set back to a list, add the duplicates, and then convert it back to a set:

my_set = {1, 2, 3}

duplicate_items = [4, 4, 5]

new_set = set(my_set + duplicate_items)

print(new_set) # Output: {1, 2, 3, 4, 5}


### Adding Items to an Empty Set

When adding items to an empty set, the set will contain only those added items:

empty_set = set()

my_items = [1, 2, 3]

empty_set.update(my_items)

print(empty_set) # Output: {1, 2, 3}

Worked Example

Let's work through an example where we create a set of students and add new students to the set.

students = {"Alice", "Bob", "Charlie"}
new_student = "David"

Adding a single student using the add() method

students.add(new_student)

print("Students after adding David (using add()):", students)

Creating a new set of students and using the union() method to combine the sets

more_students = {"Eve", "Frank"}

all_students = students.union(more_students)

print("All students after adding Eve and Frank (using union()):", all_students)

Common Mistakes

  1. Forgetting to call the add() method or using it incorrectly:
my_set = {1, 2, 3}
my_set add(4) # Incorrect syntax — use `my_set.add(4)` instead
  1. Using the | operator with sets that are not properly defined:
set1 = {1, 2, 3}
set2 = # An empty set or undefined variable
new_set = set1 | set2 # This will raise a NameError
  1. Adding duplicate items using the add() method (since sets automatically remove duplicates):
my_set = {1, 2, 3}
my_set.add(2) # The duplicate item is removed, so my_set remains {1, 2, 3}
  1. Trying to add an item to a frozen set:
frozen_set = frozenset({1, 2, 3})
frozen_set.add(4) # This will raise a TypeError

Practice Questions

  1. Write a program that creates a set of numbers and adds the numbers 7, 8, and 9 to it using the update() method.
  1. Given two sets set1 = {1, 2, 3} and set2 = {4, 5, 6}, write code that creates a new set containing all unique elements from both sets using the union() method.
  1. Write a program that creates a set of words and adds duplicate words to it using the add() method. Then, convert the set back to a list, add more duplicates, and convert it back to a set (using the method described in the Core Concept section).
  1. Create an empty set and add items to it using both the add() method and the update() method.

FAQ

Q: Can I add duplicate items to a set in Python?

A: No, sets in Python automatically remove any duplicate items when you add them. However, if you want to keep duplicates, you can convert the set back to a list, add duplicates, and then convert it back to a set (as described in the Core Concept section).

Q: How do I check if an item is already in a set before adding it?

A: You can use the in keyword to check if an item exists in a set. If the item is not found, you can then safely add it using the add() method.

my_set = {1, 2, 3}
if 4 not in my_set:
my_set.add(4)

Q: Is there a way to add items to a set in Python using list comprehension?

A: Yes! You can create a new set from a list using list comprehension and then assign it to an existing set:

my_set = {1, 2, 3}
more_items = [4, 5, 6]
my_set = {item for item in my_set if item != 3} + more_items
print(my_set) # Output: {1, 2, 4, 5, 6}

Q: How do I create a frozen set?

A: To create a frozen set, you can use the frozenset() constructor. Once a set is frozen, it cannot be modified anymore:

my_set = frozenset({1, 2, 3})
print(type(my_set)) # Output: <class 'frozenset'>
my_set.add(4) # This will raise a TypeError
Add Items to a Set in Python | Python | XQA Learn