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.