O [[Linguagem de programação Python|Python]] possui diversas estruturas de dados integradas. Elas se diferenciam principalmente por sua **mutabilidade** e pela forma como lidam com a **ordem** dos elementos.
- **Mutável vs. Imutável**
- Uma estrutura **mutável** pode ser alterada após a criação. Por exemplo, você pode adicionar ou remover itens de uma `lista`.
```Python
minha_lista = [1, 2, 3]
minha_lista[0] = 100 # Válido! A lista agora é [100, 2, 3]
```
- Uma estrutura **imutável** não pode ser modificada. Tentar alterar uma `tupla` resultará em um erro.
```Python
minha_tupla = (1, 2, 3)
minha_tupla[0] = 100 # TypeError!
```
- **Ordenado vs. Não Ordenado**
- Uma estrutura **ordenada** mantém a ordem em que os elementos foram inseridos e permite acesso por índice
```Python
minha_lista = ['a', 'b', 'c']
print(minha_lista[1]) # Imprime 'b'
```
- Uma estrutura **não ordenada** não garante a ordem dos elementos. `Conjuntos` são um exemplo clássico.
# Tabela Resumo
| Tipo | Mutável? | Ordenado? | Descrição Breve |
| ------------------------------ | ------------------------ | --------- | --------------------------------- |
| **String (`str`)** | **Não** | Sim | Sequência imutável de caracteres. |
| **[[Listas em Python]]** | **Lista (`list`)]** | Sim | Sim |
| **[[Tuplas em Python]]** | **Tupla (`tuple`)]** | Não | Sim |
| **[[Conjuntos em Python]]** | **Conjunto (`set`)** | Sim | Não |
| **[[Dictionaries in Python]]** | **Dicionário** (`dict`)] | Sim | Sim* |
Exportar para Sheets
# Pontos de Atenção
- **Dicionários:** A ordem de inserção é garantida a partir do **Python 3.7**. Em versões anteriores, eram considerados não ordenados.
- **Conjuntos:** O conjunto (`set`) em si é **mutável** (você pode adicionar/remover itens), mas seus elementos devem ser de tipos imutáveis.
:: **Referência:** :: [Documentação Python sobre tipos embutidos](https://docs.python.org/3/library/stdtypes.html)