Biblioteca Collections no Python – Estruturas de Dados
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.
A biblioteca collections do Python oferece estruturas de dados especializadas que vão além de listas e dicionários comuns. As principais são Counter (conta ocorrências), defaultdict (dicionário com valor padrão), OrderedDict, deque (fila de duas pontas, rápida para inserir e remover) e namedtuple (tupla com campos nomeados). Ela já vem instalada com o Python.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso canal do YouTube!
O que você aprende neste vídeo
Resposta rápida: Nesta aula, o instrutor apresenta a biblioteca collections do Python, que já vem instalada e adiciona estruturas de dados mais poderosas às padrões (lista, dicionário, tupla). Ele mostra as principais: Counter (conta ocorrências), defaultdict (dicionário com valor padrão), ChainMap (combina vários dicionários), deque (fila eficiente) e namedtuple (tupla com nomes). Todas são prontas e mais eficientes que fazer na mão.
Neste vídeo (18 min):
- 0:00 - O que é a biblioteca collections: estruturas de dados prontas e eficientes (já vem no Python).
- 2:00 -
Counter: um dicionário que conta as ocorrências de cada item de uma lista. - 5:00 -
defaultdict: um dicionário com valor padrão (não dá erro ao acessar chave inexistente). - 9:00 -
ChainMap: combinar vários dicionários e tratá-los como um só. - 12:00 -
deque: uma fila muito mais eficiente que a lista para adicionar/remover das pontas. - 15:00 -
namedtuple: uma tupla com nomes (acessar por nome ou por posição).
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.
Perguntas frequentes
1. Para que serve a biblioteca collections do Python?
Ela fornece estruturas de dados prontas e otimizadas, como Counter, defaultdict, deque e namedtuple, que resolvem tarefas comuns (contar itens, criar filas, dicionários com valor padrão) de forma mais simples e eficiente que listas e dicionários puros.
2. Preciso instalar a biblioteca collections?
Não. A collections faz parte da biblioteca padrão do Python, ou seja, já vem instalada. Basta importar o que você precisa, por exemplo from collections import Counter, deque, e usar direto no código.
3. O que faz o Counter da collections?
O Counter conta automaticamente quantas vezes cada elemento aparece em uma lista ou texto e devolve um dicionário com esses totais. É ideal para descobrir os itens mais frequentes, com métodos prontos como most_common().
4. Quando usar deque em vez de uma lista?
Use deque quando precisar inserir ou remover elementos no início e no fim com frequência: ele faz essas operações muito mais rápido que a lista. É ótimo para filas, pilhas e históricos com tamanho limitado.
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
- Dots do ChatGPT: o que é e como usar esse agente de IADescubra o que é o Dots do ChatGPT, como configurar, integrar com Slack e agenda e se vale a pena usar esse novo agente de IA da OpenAI.
- GPT-6 Astra: 7 usos reais do novo modelo da OpenAIVeja 7 usos reais do GPT-6 Astra, o novo modelo da OpenAI que executa tarefas sozinho no computador. Entenda como ele funciona e onde ainda erra.
- Jev IA: o que é e como usar essa IA que não escreveEntenda o que é o Jev IA, a inteligência artificial classificadora mais rápida e barata do mercado, e veja 5 usos práticos para seus fluxos.
- Planilha de Controle de Notas Fiscais no Excel [Grátis]Baixe a planilha de controle de notas fiscais no Excel grátis: calcule ISS e retenções, veja o que está em aberto e gere a cobrança de cada nota de serviço.
- Qual IA usar na empresa: ChatGPT, Claude ou Perplexity?Qual IA usar na empresa: veja as diferenças entre ChatGPT, Claude e Perplexity e quando cada um rende mais em cada área da sua equipe.
- Apostilas Gratuitas em PDF: Excel, Power BI, Python e IABaixe apostilas gratuitas em PDF de Excel, Power BI, Python, Claude e agentes de IA, com exercícios e gabarito. Escolha a sua e comece hoje.








