Sobes.tech
Junior

Qual é a diferença entre um conjunto e um array?

sobes.tech IA

Resposta da IA

Em Python, um conjunto (set) é uma coleção não ordenada de elementos únicos sem duplicados. Uma lista (geralmente representada por listas list ou arrays do módulo array) é uma coleção ordenada de elementos modificáveis, onde a ordem importa e podem estar presentes duplicados.

Principais diferenças:

  • Ordem: O conjunto não é ordenado; a ordem dos elementos não é garantida e pode mudar. A lista/array é ordenada; os elementos têm índices.
  • Unicidade: Os elementos do conjunto devem ser únicos. A lista/array pode conter duplicados.
  • Indexação/Fatiamentos: Os conjuntos não suportam indexação nem fatiamentos devido à falta de ordem. As listas/arrays suportam percursos por índice e fatiamentos.
  • Operações: Os conjuntos suportam operações matemáticas sobre conjuntos (união, interseção, diferença). As listas/arrays têm outras operações (concanetação, repetição).
  • Desempenho: A verificação de pertença (in) num conjunto é assintoticamente mais rápida (O(1) em média) em comparação com uma lista (O(n) em média).

Exemplo de criação:

# Criação de um conjunto
my_set = {1, 2, 3, 2, 4} # O duplicado 2 será ignorado
# print(my_set) # Mostrará {1, 2, 3, 4} (a ordem pode variar)

# Criação de uma lista
my_list = [1, 2, 3, 2, 4]
# print(my_list) # Mostrará [1, 2, 3, 2, 4] (mantém a ordem e os duplicados)

Comparação de operações:

Operação Conjunto Lista/Array
Verificação in Rápido (O(1) médio) Lento (O(n) médio)
Adição add(), update() append(), extend(), insert()
Remoção remove(), discard(), pop() remove(), pop(), del
União union() ou ` `
Interseção intersection() ou & Não suportado diretamente
Acesso por índice Não Sim

Os conjuntos são usados quando a unicidade dos elementos e a verificação rápida de sua existência são importantes, e a ordem não importa (por exemplo, para remover duplicados, realizar operações múltiplas). As listas/arrays são usadas quando a ordem dos elementos é importante, é necessário acesso por índice, e podem haver duplicados.