W3docs

Adicionar Itens a um Set

Aprenda a adicionar itens a um set Python com add() para elementos únicos e update() para múltiplos valores de qualquer iterável, com exemplos claros.

Os sets em Python são coleções não ordenadas de elementos únicos. Após a criação de um set, é possível expandi-lo a qualquer momento usando dois métodos dedicados: add() para inserir um único elemento e update() para inserir vários elementos de uma só vez a partir de qualquer iterável. Este capítulo aborda ambos os métodos em profundidade, explica quando usar cada um e destaca erros comuns.

Se você ainda não conhece os sets, leia primeiro o capítulo Python Sets. Para aprender a remover itens, consulte Remove Set Items.

O Método add()

add() insere um elemento no set. Se o elemento já existir, o set não é alterado — nenhum erro é gerado e nenhuma duplicata é criada.

Sintaxe

set.add(element)
  • element — o valor a ser inserido. Deve ser hashable (strings, números, tuplas de valores hashable, etc.). Listas e dicts não podem ser adicionados.
  • Valor de retorno: None. O set é modificado no lugar.

Adicionando um novo elemento

Adicionar uma string a um set

python— editable, runs on the server

Adicionar uma duplicata é seguro

Chamar add() com um elemento que já existe não faz nada — o set permanece com o mesmo tamanho:

Adicionar um elemento duplicado a um set

fruits = {'apple', 'banana', 'cherry'}
fruits.add('apple')   # 'apple' is already present
print(fruits)
# {'apple', 'banana', 'cherry'}   (unchanged)

Essa é uma das propriedades mais úteis dos sets: você nunca precisa verificar se um elemento já existe antes de adicioná-lo.

add() aceita apenas um argumento

add() recebe exatamente um argumento. Para inserir vários elementos de uma só vez, use update() (veja a próxima seção).

# This raises TypeError: set.add() takes exactly one argument (2 given)
# fruits.add('kiwi', 'mango')

add() requer um elemento hashable

Apenas tipos hashable podem ser armazenados em um set. Listas e dicionários não são hashable, portanto passá-los para add() gera um TypeError:

s = {1, 2, 3}
# s.add([4, 5])  # TypeError: unhashable type: 'list'
# Use a tuple instead:
s.add((4, 5))
print(s)
# {1, 2, 3, (4, 5)}

O Método update()

update() adiciona todos os elementos de um ou mais iteráveis ao set em uma única chamada. Aceita qualquer iterável — outro set, uma lista, uma tupla ou até mesmo uma string.

Sintaxe

set.update(iterable1, iterable2, ...)
  • Um ou mais iteráveis podem ser passados.
  • Duplicatas entre o set existente e os novos elementos são silenciosamente ignoradas.
  • Valor de retorno: None. O set é modificado no lugar.

Adicionando elementos de uma lista

Atualizar um set a partir de uma lista

fruits = {'apple', 'banana'}
fruits.update(['cherry', 'date', 'elderberry'])
print(fruits)
# {'apple', 'banana', 'cherry', 'date', 'elderberry'}

Adicionando elementos de outro set

Mesclar dois sets com update()

set1 = {1, 2, 3}
set2 = {3, 4, 5}
set1.update(set2)
print(set1)
# {1, 2, 3, 4, 5}

Note que update() modifica set1 no lugar, enquanto union() retorna um novo set sem alterar os originais.

Adicionando a partir de múltiplos iteráveis de uma só vez

Você pode passar vários iteráveis para uma única chamada de update():

Atualizar um set a partir de múltiplos iteráveis

numbers = {1, 2, 3}
numbers.update([4, 5], {5, 6, 7})
print(numbers)
# {1, 2, 3, 4, 5, 6, 7}

Passando uma string para update()

Como uma string é iterável, update() a divide em caracteres individuais. Isso geralmente não é o que você deseja, portanto tome cuidado:

Atualizar com uma string — adiciona caracteres individuais

s = {'hello'}
s.update('abc')
print(s)
# {'hello', 'a', 'b', 'c'}   — each character becomes a separate element

Para adicionar uma string inteira como um único elemento, use add().

add() vs update() — Comparação Rápida

add()update()
Número de elementosUmMuitos
Tipo do argumentoUm único valor hashableQualquer iterável (lista, set, tupla, …)
Modifica o set no lugar?SimSim
RetornaNoneNone

Exemplos Práticos

Construindo um set de tags dinamicamente

Um caso de uso comum é coletar tags ou identificadores únicos durante a execução do programa:

Coletar tags únicas com um set

tags = set()

# add() for one tag at a time
tags.add('python')
tags.add('tutorial')
tags.add('python')   # duplicate — ignored

print(tags)
# {'python', 'tutorial'}

# update() to add several tags at once
tags.update(['coding', 'beginner', 'tutorial'])
print(tags)
# {'python', 'tutorial', 'coding', 'beginner'}

Removendo duplicatas ao acumular dados

Como add() ignora silenciosamente as duplicatas, você pode usar um set como acumulador para eliminar itens duplicados de múltiplas fontes:

Eliminar duplicatas de duas listas usando um set

batch1 = [101, 102, 103, 102]
batch2 = [103, 104, 105]

seen = set()
seen.update(batch1)
seen.update(batch2)

print(sorted(seen))
# [101, 102, 103, 104, 105]

Pontos-Chave

  • Os sets armazenam apenas elementos únicos; add() e update() nunca criam duplicatas.
  • Os sets são não ordenados — a ordem de inserção não é preservada e pode variar entre execuções.
  • add() insere exatamente um elemento hashable; update() insere todos os elementos de qualquer número de iteráveis.
  • Ambos os métodos retornam None e mutam o set no lugar.
  • Para combinar dois sets em um novo set sem modificar nenhum deles, use union() (veja Set Methods).

Prática

Prática
What methods in Python can be used to add items into set?
What methods in Python can be used to add items into set?
Was this page helpful?