Python Set add() Method

set.add() adds one item to a set.

Use it when you want to put a single value into an existing set. If that value is not already present, Python adds it. If it is already in the set, nothing changes.

Quick example

numbers = {1, 2, 3}
numbers.add(4)
print(numbers)

Output:

{1, 2, 3, 4}

Use add() to put one value into a set. If the value is already in the set, nothing changes.

What set.add() does

set.add() is a built-in set method that:

  • Adds one item to a set
  • Changes the original set in place
  • Does not return a new set
  • Leaves the set unchanged if the item already exists

If you are new to sets, see Python sets explained or how to create a set in Python.

Basic syntax

my_set.add(item)

Important points:

  • Call add() on an existing set
  • Pass exactly one item
  • The item must be hashable

A hashable value is a value Python can safely store in a set. Common hashable values include:

  • Numbers
  • Strings
  • Tuples
  • Booleans

Simple example

Here is a basic example:

colors = {"red", "blue"}
colors.add("green")

print(colors)

Possible output:

{'red', 'green', 'blue'}

The new value "green" was added to the set.

One important thing to remember: sets are unordered collections. That means you should not rely on the printed order of values.

For example, this is also valid output:

{'blue', 'red', 'green'}

The values are the same. Only the display order is different.

What happens with duplicate values

Sets store unique values only. If you try to add a value that is already in the set, Python does not raise an error.

numbers = {1, 2, 3}
numbers.add(2)

print(numbers)

Output:

{1, 2, 3}

The set stays the same because 2 was already present.

add() vs update()

Use add() when you want to add one item.

letters = {"a", "b"}
letters.add("c")

print(letters)

Use update() when you want to add multiple items from an iterable such as a list, tuple, or set.

letters = {"a", "b"}
letters.update(["c", "d", "e"])

print(letters)

Key difference

  • add() adds one item
  • update() adds multiple items from an iterable

If you want to learn that method next, see Python set update() method.

Return value

set.add() returns None.

That means you should not assign its result back to the variable.

Correct

my_set = {1, 2, 3}
my_set.add(4)

print(my_set)

Wrong

my_set = {1, 2, 3}
my_set = my_set.add(4)

print(my_set)

Output:

None

This is a common beginner mistake. The method changes the original set directly.

Items you can and cannot add

You can add hashable values such as:

  • Numbers
  • Strings
  • Tuples
  • Booleans

Example:

items = set()

items.add(10)
items.add("hello")
items.add((1, 2))
items.add(True)

print(items)

You cannot add mutable values such as:

  • Lists
  • Dictionaries
  • Sets

Example that causes an error:

items = {1, 2, 3}
items.add([4, 5])

Error:

TypeError: unhashable type: 'list'

This happens because lists are mutable, so they cannot be stored as set items.

If you get this error, see how to fix TypeError: unhashable type.

Common mistakes

Here are some common problems beginners run into with set.add():

  • Using add() when you need to insert multiple values
  • Expecting add() to return the updated set
  • Trying to add a list or dictionary to a set
  • Confusing set.add() with list append()
  • Expecting sets to keep insertion order for display logic

Helpful checks while debugging:

print(my_set)
print(type(my_set))
print(value)
print(type(value))
help(set.add)

Also remember that set.add() is not the same as adding items to a list. If you are working with lists instead, see how to add an item to a list in Python.

FAQ

Does set.add() return a new set?

No. It changes the existing set and returns None.

What if I add a value that is already in the set?

Nothing breaks. The set stays the same because sets keep only unique values.

How do I add more than one item to a set?

Use set.update() instead of add().

Can I add a list to a set?

No. Lists are mutable and unhashable, so Python raises a TypeError.

See also

Once you understand add(), the next useful step is learning when to use a set, list, or another collection type so you can choose the right method for the task.