Domínio de Listas em Python: Guia Completo com Exemplos

Introdução às Listas em Python

Em Python, as listas são estruturas de dados ordenadas, mutáveis e que permitem elementos duplicados, essenciais para armazenar coleções de itens. Elas são extremamente versáteis e fundamentais em muitas aplicações.

Criação de Listas

Uma lista pode ser definida usando colchetes, com elementos separados por vírgulas.

lista_principal = [10, 20, 30, 40, 50]

Acesso via Índices e Fatiamento

Elementos individuais ou sublistas podem ser acessados usando índices (começando em 0) ou fatiamento.

primeiro_elemento = lista_principal[0]  # Resultado: 10
sublista = lista_principal[1:3]         # Resultado: [20, 30]

Obtenção do Comprimento

A função len() retorna o número de elementos na lista.

quantidade = len(lista_principal)  # Resultado: 5

Modificação de Elementos

Listas podem ser alteradas de várias maneiras:

  • Adição no final: Use o método append().
lista_principal.append(60)
  1. Inserção em posição específica: Use insert().
lista_principal.insert(1, 15)
  1. Remoção de elemantos: Pode-se usar del, remove() ou pop().
del lista_principal[0]
lista_principal.remove(30)
item_removido = lista_principal.pop(1)
  1. Limpeza completa: O método clear() esvazia a lista.
lista_principal.clear()

Iteração sobre Listas

Para percorrer cada elemento, utilize um loop for.

for elemento in lista_principal:
    print(elemento)

Métodos Úteis de Listas

Python oferece métodos integrados para operações comuns:

lista_principal.sort()        # Ordena os elementos
lista_principal.reverse()     # Inverte a ordem
contagem = lista_principal.count(20)  # Conta ocorrências

List Comprehensions

Uma forma concisa de criar listas, como gerar quadrados de números.

quadrados = [n ** 2 for n in range(1, 6)]  # Resultado: [1, 4, 9, 16, 25]

Erros Comuns e Correções em Listas

Ao manipular listas, certos erros são frequentes. Veja exemplos revisados:

Erro ao Tentar Modificar Strings In-Place

Strings são imutáveis; métodos como replace() criam novas strings em vez de alterar as originais.

nomes = ["Ana", "Beatriz", "Carlos", "Diogo"]
for nome in nomes:
    if nome.startswith("A"):
        # Incorreto: nome.replace("A", "B") não altera a lista
        nome_corrigido = nome.replace("A", "B")
        print(nome_corrigido)  # Imprime "Bna"
print(nomes)  # Lista original não muda

Para atualizar a lista, atribua o novo valor ao índice correto.

for i in range(len(nomes)):
    if nomes[i].startswith("A"):
        nomes[i] = nomes[i].replace("A", "B")
print(nomes)

Erro ao Usar Strings como Índices

Listas requerem índices inteiros; use index() para encontrar a posição de um elemento.

valores = ["x", "y", "z"]
# Incorreto: valores["y"] causa TypeError
posicao = valores.index("y")  # Correto: retorna 1
valores[posicao] = "Y"
print(valores)  # Resultado: ["x", "Y", "z"]

Problemas ao Remover Elementos durante Iteração

Remover elementos de uma lista enquanto a itera pode pular itens. Uma abordagem segura é criar uma nova lista.

numeros = [1, 2, 3, 4, 5]
# Tentativa incorreta de remover pares
for num in numeros:
    if num % 2 == 0:
        numeros.remove(num)  # Pode não remover todos
print(numeros)  # Resultado imprevisível

# Correção: lista auxiliar
numeros_filtrados = []
for num in numeros:
    if num % 2 != 0:
        numeros_filtrados.append(num)
numeros = numeros_filtrados
print(numeros)  # Resultado: [1, 3, 5]

Ordenação Personalizada

Por padrão, listas de strings são ordenadas por código Unicode. Para critérios específicos, use o parâmetro key.

palavras = ["banana", "maçã", "laranja", "uva"]
palavras.sort(key=len)  # Ordena por comprimento
print(palavras)  # Resultado: ["uva", "maçã", "banana", "laranja"]

Tags: Python listas estruturas-dados indexacao slicing

Publicado em 6-8 18:57 por Thomas