Aprenda a utilizar a biblioteca collections no Python! Esta biblioteca adiciona novas funcionalidades às estruturas de dados do Python, tornando-as mais práticas e eficientes.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Biblioteca Collections no Python – Estruturas de Dados
Na aula de hoje, você aprenderá como usar a biblioteca collections no Python, uma ferramenta poderosa para trabalhar com estruturas de dados.
Esta biblioteca oferece diversas funcionalidades que facilitam a resolução de problemas de maneira mais prática e eficiente. Entre elas, veremos as estruturas: Counter, defaultdict, ChainMap, deque e namedtuple.
Faça o download do material disponível nesta aula e vem comigo aprender mais sobre essa importante biblioteca!
Biblioteca Collections – Qual o seu Objetivo?
A collections é uma biblioteca padrão do Python, ou seja, ela já vem instalada com o Python. Para utilizá-la, basta importar a biblioteca ou as funcionalidades específicas que você deseja usar.
Esta biblioteca oferece estruturas de dados auxiliares com funcionalidades extras quando comparadas as estruturas de dados padrão do Python (listas, tuplas e dicionários), tornando a resolução de desafios e problemas muito mais fácil e eficiente.
Counter – Dicionários para Contar Ocorrências
O Counter é uma subclasse do dicionário presente na biblioteca collections, que facilita a contagem de elementos em um iterável. Ele pode ser utilizado quando você precisa determinar a quantidade de ocorrências dos itens em um iterável.
Você pode gerar um Counter a partir de qualquer iterável, como uma lista, uma string ou mesmo um dicionário. Por exemplo, vamos utilizar o Counter para gerar um dicionário a partir da lista estoque.
# counter from collections import Counter estoque = ["iphone", "iphone", "ipad", "airpod", "ipad", "iphone", "iphone", "airpod", "macbook"] dic_counter = Counter(estoque) print(dic_counter)
Com o dicionário criado, você pode manipulá-lo e utilizá-lo como um dicionário comum, inclusive passando a chave para acessar o valor dele.
print(dic_counter["iphone"])
Dessa forma, você consegue ter um controle de ocorrências e quantidades de cada elemento dentro da lista e pode acessar esses valores facilmente.
Default Dict – Dicionário com Valor Padrão
O defaultdict também é uma subclasse do dicionário que podemos utilizar para criação de dicionários com valores padrão. Com ele, você pode acessar qualquer chave de um dicionário e, caso ela não exista, ele automaticamente fornecerá o valor padrão.
Para criar um defaultdict, vamos importá-lo e definir qual o tipo de elemento esse dicionário irá armazenar. Por exemplo, podemos criar um dicionário para organizar os vendedores em listas, de acordo com as metas batidas.
from collections import defaultdict vendas = {"André": 1000, "João": 2000, "Lira": 500, "Amanda": 1500, "Carol": 3000, "Marcus": 200, "Camila": 400, "Andreia": 8000} meta1 = 1000 meta2 = 2000 dic_bonus = defaultdict(list) for vendedor in vendas: valor_vendas = vendas[vendedor] if valor_vendas > meta2: dic_bonus["meta2"].append(vendedor) elif valor_vendas > meta1: dic_bonus["meta1"].append(vendedor) else: dic_bonus["sem meta"].append(vendedor) print(dic_bonus)
Nesse caso, estamos inicializando o dicionário como um defaultdict de listas e, em seguida, atribuindo os vendedores para as chaves meta2, meta1 e sem meta. Perceba que em nenhum momento precisamos definir as chaves do dicionário dic_bonus.
Além disso, se tentarmos acessar uma chave não existente nesse dicionário, ele inicializará e retornará uma lista vazia.
print(dic_bonus["super meta"])
O defaultdict é útil para contagem de itens, agrupamento de listas e outras operações que requerem um valor padrão para chaves não existentes.
ChainMap – Conjunto de Dicionários
O ChainMap é uma classe da biblioteca collections que facilita a combinação de múltiplos dicionários em uma única visualização.
Essa funcionalidade é muito útil quando precisamos trabalhar com várias fontes de dados ao mesmo tempo, sem precisar mesclar os dicionários manualmente.
Para utilizar o ChainMap, basta importá-lo e passar os dicionários que desejamos combinar.
# ChainMap brinquedos = {'Lego': 30, 'Banco Imobiliário': 10} informatica = {'Tablet': 5, 'Mouse': 30, 'Iphone': 15} roupas = {'Jeans': 150, 'Camisa': 100} from collections import ChainMap estoque = ChainMap(brinquedos, informatica, roupas) print(estoque)
Como resultado temos esse ChainMap chamado estoque que pode ser manipulado normalmente como um dicionário, mesmo que na prática não tenhamos de fato mesclado os três dicionários existentes.
print(estoque["Tablet"])
Essa estrutura é interessante pois mantém as estruturas iniciais enquanto gera um dicionário completo que considerará todas as chaves existentes nos dicionários originais.
print(list(estoque.keys()))
Deque – Double-Ended Queue
O deque, ou double-ended queue, pode ser usado para criar uma estrutura de dados semelhante a uma lista, porém, diferente de uma lista comum, o deque aceita a inserção e remoção de valores em ambas as extremidades (começo e fim da lista).
Para criar um deque podemos declará-lo de forma semelhante a uma lista.
# deque from collections import deque fila = deque(["item1", "item2", "item3"])
Feito isso, ele permitirá a inserção de elementos no final ou no início dessa lista, utilizando os métodos append, para adicionar um item ao final da lista, ou appendleft, para adicionar no começo.
fila.append("item4") print(fila) fila.appendleft("item5") print(fila)
Da mesma forma, podemos remover elementos do final ou do início do deque usando os métodos pop e popleft.
fila.pop() print(fila) fila.popleft() print(fila)
Namedtuple – Tupla Nomeada
Por fim, vamos ver a estrutura namedtuple. Essa classe da biblioteca collections funciona de forma semelhante a um dicionário, mas utilizando a estrutura de uma tupla.
Com ela, podemos criar tuplas com campos nomeados, tornando o código mais legível e acessível. Além disso, é possível acessar e manipular os elementos da tupla através dos nomes dados a eles ao invés dos índices.
Para criar uma namedtuple, precisamos defini-la e especificar os nomes de cada campo. Em seguida, podemos criar uma instância dessa tupla nomeada.
# namedtuple from collections import namedtuple Produto = namedtuple("Produto", ["nome", "preco", "tamanho"]) produto1 = Produto("camisa", 150, "M") print(produto1.nome)
Por ser uma tupla, ainda podemos acessar seus valores através do índice, mas utilizando os nomes tornamos o código muito mais claro e facilitamos a manipulação dos dados.
print(produto1[1]) print(produto1.preco)
A namedtuple é muito útil para criarmos registros legíveis, facilitando a manutenção e a clareza do código.
Conclusão – Biblioteca Collections no Python – Estruturas de Dados
Nessa aula, você aprendeu como utilizar a biblioteca collections no Python, uma ferramenta extremamente útil e poderosa para trabalhar com estruturas de dados.
Com ela, podemos adicionar funcionalidades às listas, tuplas e dicionários, trabalhando com estruturas auxiliares que nos permitem uma manipulação completa e eficiente dos dados. Agilizando nossos trabalhos e a resolução de problemas com Python!
Hashtag Treinamentos
Para acessar outras publicações de Python, clique aqui!
Posts mais recentes da Hashtag Treinamentos
- Aprenda a Criar Planilha de Estoque com ChatGPT e ExcelQuer aprender como criar uma planilha de estoque com ChatGPT e Excel? Aprenda como fazer isso de forma simples e direta!
- Conheça o Gemini, o ChatGPT do GoogleConheça o Gemini, a inteligência artificial do Google, que funciona basicamente como o ChatGPT do Google.
- Como Perguntar e Entender Direções em Inglês: Guia Completo para ViajantesAprenda como pedir e entender direções em inglês de forma clara e educada. Confira nosso guia completo com frases prontas e com as pronuncias adequadas.
- Power BI na Prática: Análises de CasosNeste guia 100% prático, vamos trabalhar em um case real de análise de perfil de cliente. Usaremos o Power BI para explorar dados e identificar oportunidades de negócios.
- Como usar o ChatGPT de Graça do Básico ao AvançadoVocê sabe como usar o ChatGPT de graça, aproveitando seus diversos recursos? Aprenda o passo a passo e como usar essa IA para melhorar sua produtividade!
- Data Driven: guia para profissionais que querem se destacarEntenda o que é Data Driven, como essa cultura transforma decisões empresariais e quais habilidades você precisa para se destacar nesse mercado!
Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.