Estruturas de Dados: Operações Fundamentais com Listas em Python

As listas constituem uma das estruturas de dados mais versáteis disponíveis na linguagem Python. Elas permitem armazenar coleções ordenadas e modificáveis, suportando a coexistência de elementos com tipos heterogêneos, como números, cadeias de caracteres e até outras coleções. Cada item ocupa uma posição específica, acessível por meio de índices numéricos.

Inicialização e Construção

A definição de uma lista ocorre naturalmente por meio de colchetes. É possível instanciá-la vazia ou preencher diretamente com valores iniciais. Além disso, a função nativa list() converte outros iteráveis em sequências indexadas.

# Sequência com dados mistos
dados_mistos = [42, "processo", 9.81, False]

# Instância vazia
buffer = []

# Conversão de string para lista de caracteres
letras_separadas = list("python")

Recuperação de Dados por Índice e Fatiamento

A recuperação de itens segue a convenção zero-based. Índices positivos contam a partir do início, enquanto os negativos partem do final. O operador de fatiamento permite extrair subconjuntos contíguos.

sequencia = [100, 200, 300, 400, 500]

# Primeiro item
print(sequencia[0])  # 100

# Último item via índice negativo
print(sequencia[-1]) # 500

# Extrai do índice 1 até o 3 (exclusivo)
print(sequencia[1:3]) # [200, 300]

Atualização e Mutabilidade

Por serem mutáveis, as listas permitem a substituição direta de valores existentes utilizando a notação de atribuição por índice.

valores = [5, 15, 25]
valores[1] = 12  # Substitui o segundo elemento
print(valores)  # [5, 12, 25]

Inserção e Remoção de Itens

O gerenciamento de tamanho dinâmico é realizado por métodos dedicados. A adição pode ocorrer no final ou em posições específicas, enquanto a remoção pode ser baseada em valor, posição ou limpar a coleção inteira.

estoque = [10, 20, 30]

# Adiciona ao final
estoque.append(40)
print(estoque)  # [10, 20, 30, 40]

# Insere em posição definida
estoque.insert(2, 25)
print(estoque)  # [10, 20, 25, 30, 40]

# Remove pela primeira ocorrência do valor
estoque.remove(20)
print(estoque)  # [10, 25, 30, 40]

# Extrai e retorna o item do índice 1
item_extraido = estoque.pop(1)
print(item_extraido) # 25
print(estoque)       # [10, 30, 40]

# Limpa completamente
estoque.clear()
print(estoque)       # []

Contagem, Tamanho e Pesquisa

A função integrada len() retorna a quantidade total de elementos. Métodos como count() e index() auxiliam na análise e localização de dados específicos.

numeros = [2, 4, 2, 6, 8, 2]

print(len(numeros))           # 6
print(numeros.count(2))       # 3
print(numeros.index(6))       # 3
# numeros.index(9) # Acionaria ValueError

Ordenação e Inversão

A reorganização dos dados pode ser fieta in-place ou retornando novas sequências. A ordem padrão é crescente, mas pode ser invertida facilmente.

metricas = [7, 1, 9, 3, 0]

# Ordenação crescente in-place
metricas.sort()
print(metricas)  # [0, 1, 3, 7, 9]

# Reversão da sequência atual
metricas.reverse()
print(metricas)  # [9, 7, 3, 1, 0]

# Expansão com múltiplos itens de outra sequência
metricas.extend([5, 6])
print(metricas)  # [9, 7, 3, 1, 0, 5, 6]

Estruturas Aninhadas

O Python permite a composição de listas dentro de outras listas, habilitando a criação de matrizes ou tabelas multidimensionais. O acesso exige múltiplas indexações sequenciais.

grade = [
    ["A1", "B1", "C1"],
    ["A2", "B2", "C2"],
    ["A3", "B3", "C3"]
]

print(grade[0][1])  # B1
print(grade[2][0])  # A3

Tags: Python listas estruturas-de-dados manipulacao-de-sequencias

Publicado em 10-16 06:58