image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Antonio Guedes
Antonio Guedes15/08/2025 16:29
Share
Suzano - Python Developer #2Recommended for youSuzano - Python Developer #2

Listas de Python com o método que você quiser.

    Pré-Texto

    Imagine que você está resolvendo um problema em Python e precisa manipular uma lista. Você procura na documentação, vasculha fóruns, Reddit, Stack Overflow e até recorre a LLMs… mas descobre que o método que você precisa simplesmente não existe.

    Seja para encontrar números pares, contar caracteres em um elemento específico ou qualquer outra tarefa, você acaba criando funções próprias e espalhando chamadas por todo o código — até que, em algum momento, pensa: "Isso aqui está ficando confuso".

    E se eu te dissesse que é possível usar listas nativas do Python e ainda ter seus próprios métodos, acessando-os como se fossem parte da lista? Neste artigo — o primeiro de uma série sobre estruturas de dados e algoritmos — você vai descobrir como fazer isso e talvez encontre o insight que faltava para simplificar seu código.

    Introdução

    Para se tornar um bom desenvolvedor de soluções computacionais para problemas reais, é fundamental estar com o pensamento computacional e o raciocínio lógico bem treinados. Isso significa entender como modelar o mundo real através de estrutura de dados.

    Neste primeiro artigo da série, vamos falar sobre listas em Python - uma das estruturas mais usadas - e como criar métodos personalizados para manipulação de listas.

    O que é uma lista em Python?

    Uma lista é uma estrutura de dados interna do Python (built-in) usada para armazenar múltiplos elementos. É ordenável, mutável e pode conter elementos de diferentes tipos.

    Exemplo básico:

    python
    
    # Lista vazia
    elementos = []
    
    # Lista com inteiros
    inteiros = [0, 3, 2, 1, 5, 4, 6]
    
    # lista com tipos variados
    usuario = [1, 'Fulano', 'da Silva', 18, 'fulano@email.com', True]
    

    Manipulando listas com métodos nativos

    Alguns métodos importantes:

    python
    
    # Adicionar elemento
    elementos.append('agua')
    
    # Ordenar lista
    inteiros.sort() # Resultado: [0, 1, 2, 3, 4, 5, 6]
    

    Criando um algoritmo personalizado

    Suponha que queremos separar os números pares e ímpares de uma lista

    python
    
    numeros = range(0, 100)
    pareas = []
    impares = []
    
    for element in numeros:
      if isinstance(elemento, int):
          if elemento % 2 == 0:
              pares.append(elemento)
          else:
              impares.append(elemento)
    
    print(f"Pares: {pares}")
    print(f"Ímpares: {impares}")
    

    Criando métodos próprios para listas

    O tipo list é, na verdade, uma classe com vários métodos. Podemos herdar essa classe e adicionar novos métodos.

    python
    
    class Numeros(list):
      def detect_pairs(self):
          """Retorna apenas os números pares"""
          return [x for x in self if x % 2 == 0]
    
      def detect_odds(self):
          """Retorna apenas os números ímpares"""
          return [x for x in self if x % 2 != 0]
    

    Usando a nova classe

    python
    
    numeros = Numeros(range(0, 100))
    
    pares = numeros.detect_pairs()
    impares = numeros.detect_odds()
    
    print(pares)
    print(impares)
    

    Te convido a verificar a estrutura da classe Numeros fazendo o comando:

    python
    
    help(Numeros)
    

    Veja que interessante, tem toda a estrutura da classe list, e ainda conta com os dois métodos que acabamos de desenvolver. Assim, é possível usar a estrutura buit-in da classe list, e ainda chamar métodos próprios, tornando seu código mais legível.

    Conclusão

    Estendendo classes internas do Python, podemos manter todos os métodos originais e ainda adicionar comportamentos específicos. No próximo artigo, falaremos sobre pilhas e como elas podem ser aplicadas em Python.

    Share
    Recommended for you
    Ri Happy - Front-end do Zero #2
    Avanade - Back-end com .NET e IA
    Akad - Fullstack Developer
    Comments (0)
    Recommended for youSuzano - Python Developer #2