Python: “Deque” – O que é isso?

Se você costuma trabalhar com listas em Python, provavelmente sabe que elas não são rápidas o suficiente quando você precisa adicionar e remover elementos da extremidade esquerda. Python oferece o módulo “coleções”, que fornece uma classe chamada deque que é projetada especificamente para fornecer métodos rápidos e com uso eficiente de memória para adicionar e remover elementos em ambas as extremidades da estrutura de dados subjacente. Deque é uma fila de cadeia dupla de baixo nível e altamente otimizada, ideal para implementar filas e pilhas elegantes, eficientes e Pythonic. Neste tutorial, você aprenderá como criar e usar um deque em seu código, como adicionar e remover elementos de forma eficiente em ambas as extremidades de um deque, como usar o deque para criar filas e pilhas eficientes e quando faz sentido use deque em vez de listas.

Principais conclusões

  • Deque é uma classe em Python que fornece métodos rápidos e eficientes em termos de memória para adicionar e remover elementos em ambas as extremidades de uma estrutura de dados.
  • Deque é uma fila de cadeia dupla ideal para implementar filas e pilhas.
  • Ao usar Deque, você pode escrever código Python que é mais elegante, eficiente e Pythonic.
  • Deques são thread-safe e eficientes em termos de memória, o que os torna ideais para determinados aplicativos.
  • Deques fornece uma variedade de funções e métodos para trabalhar com elementos e fornece acesso a elementos aleatórios na estrutura de dados.

Usando deque em Python

O dequeO módulo em Python fornece uma maneira eficiente de criar e gerenciar estruturas de dados com operações rápidas e com uso eficiente de memória. Deque permite adicionar e remover elementos no início e no final da estrutura de dados.

Hum deque em Python Para usá-lo, você precisa importar o módulo deque das coleções e chamá-lo com um iterável opcional como argumento. Este iterável pode ser uma lista, uma tupla, uma string ou um intervalo.

Depois de criar um deque, você pode realizar operações básicas, como adicionar elementos, remover elementos, ler elementos em posições específicas e pesquisar no deque. Deques também oferece suporte a operações de associação, indexação e funções integradas, como len , sorted e Reversed .

Um exemplo de uso de deque:

  1. Importe o módulo deque: from collections import deque
  2. Crie um deque com uma lista como argumento: my_deque = deque((1, 2, 3))
  3. Adicione elementos ao final do deque: my_deque.append(4)
  4. Adicione elementos no início do deque: my_deque.appendleft(0)
  5. Remova o primeiro elemento do deque: my_deque.popleft
  6. Leia o último elemento do deque: last_element = my_deque(-1)

Deque permite criar e gerenciar pilhas, filas e outras estruturas de dados eficientes. Oferece uma alternativa poderosa às listas tradicionais e pode ser usada em diversas áreas de aplicação.

Adicionando e removendo elementos com eficiência no deque

Deques em Python fornecem uma maneira eficiente de adicionar e remover elementos em ambas as extremidades da estrutura de dados. Isso permite o processamento rápido e flexível de filas e lotes.

A adição de elementos à extremidade direita de um deque é feita usando o método append, enquanto a adição à extremidade esquerda é feita usando o appendleft. Esses métodos inserem o elemento diretamente na posição correspondente no deque e requerem apenas tempo constante, independentemente do tamanho do deque.

A remoção de elementos é feita usando os métodos “pop” e “popleft”. “Pop” remove e retorna o elemento mais à direita do deque, enquanto “popleft” remove e retorna o elemento mais à esquerda. Essas operações também ocorrem em tempo constante e são eficientes independentemente do tamanho do deque.

Usando esses métodos de adição e remoção de elementos, os desenvolvedores podem implementar filas e pilhas mais eficientes e Pythonic que atendam às necessidades de seu aplicativo.

Acessando elementos aleatórios em um deque


exemplo de python deque

Deques em Python permitem acessar elementos em qualquer posição na estrutura de dados sequencial. Eles fornecem vários métodos como Insert, Remove, Indexing e Del para trabalhar com os elementos em um deque. Esses métodos permitem inserir ou remover elementos em uma posição específica, ler o primeiro ou o último elemento ou acessar um elemento por índice. Também é possível remover elementos através do seu valor. No entanto, é importante observar que deques não suportam fatiamento, o que significa que você não pode extrair partes do deque.

Para acessar um elemento em uma posição específica em um deque, você pode usar o método Index. Este método retorna o índice do primeiro elemento que possui o valor especificado. Se o elemento não for encontrado, um ValueError será gerado. Alternativamente, você também pode usar a notação de indexação especificando o índice entre colchetes após o nome do deque.

Outros métodos para acessar elementos individuais em um deque:

  • Inserir: insere um elemento no deque em uma posição específica.
  • Remover: remove o primeiro elemento do deque que possui o valor especificado.
  • Del: Remove o elemento em uma posição específica no deque.

Esses recursos permitem acessar e trabalhar com os elementos de um deque para concluir tarefas específicas. No entanto, observe que adicionar ou remover elementos em posições arbitrárias em um deque é menos eficiente do que adicioná-los ou removê-los no início ou no final do deque.

As vantagens do deque sobre as listas


desempenho do python deque

O módulo deque em Python oferece uma variedade de vantagens em relação às listas. Aqui estão alguns dos principais benefícios:

  • Adicione e remova elementos com mais eficiência: Em comparação com listas, adicionar e remover elementos em deques é mais estável e eficiente, especialmente no início de uma estrutura de dados. Embora as listas exijam que todos os elementos sejam movidos, o deque atualiza apenas os ponteiros, resultando em um desempenho consistente.
  • Thread seguro e eficiente em termos de memória: Deques são threadsafe, o que significa que podem ser usados ​​com segurança em ambientes multithread. Eles também são eficientes em termos de memória porque armazenam apenas as referências aos elementos e não os próprios elementos.
  • Possibilidade de limitar o comprimento máximo: Deques oferecem a possibilidade de limitar o comprimento máximo. Isso permite que itens mais antigos sejam removidos automaticamente quando novos itens forem adicionados. Isto é particularmente útil quando você deseja armazenar apenas os elementos mais recentes na estrutura de dados.

Essas vantagens tornam o deque uma opção atraente para determinadas aplicações, especialmente aquelas que exigem processamento eficiente em filas e lotes. Porém, é importante observar que o uso de deque sobre listas depende de requisitos específicos e de otimização de desempenho.

Teste de desempenho por deque

Nesta seção examinaremos mais de perto o desempenho de Deques e o compararemos com as listas. Através de testes de desempenho, podemos avaliar a eficiência dos deques em diversas operações e determinar se eles são de fato uma alternativa poderosa às listas.

Metodologia de teste

  • Testamos várias operações, como adicionar elementos no início e no final da estrutura de dados.
  • Os testes foram realizados em uma quantidade suficientemente grande de dados para obter resultados representativos.
  • Os testes foram realizados em diferentes configurações de hardware e versões de Python para verificar sua consistência.

Resultados

Os testes de desempenho mostraram que deques são mais eficientes que listas para as operações testadas. Em particular, adicionar elementos ao início de uma lista usando o método appendleft foi várias vezes mais rápido do que adicionar elementos ao início de uma lista usando o método insert. Isso se deve à implementação de deques como listas duplamente vinculadas, que requerem apenas a atualização dos ponteiros em vez de mover os elementos.

Esta eficiência também se estende à remoção de elementos. As operações pop em ambas as extremidades do deque foram superiores às operações correspondentes nas listas em termos de velocidade e estabilidade. Esta é outra vantagem do Deques que o torna ideal para aplicações que requerem adição e remoção de elementos de forma eficiente.

  1. Adicionar elementos ao início de um deque é mais rápido do que adicionar elementos ao início de uma lista.
  2. As operações pop em ambas as extremidades de um deque são mais rápidas e estáveis ​​que as operações correspondentes nas listas.
  3. Deques são em geral mais eficientes e oferecem melhor desempenho em comparação com listas.

Usos de deque em Python

Deques pode ser usado em várias áreas de aplicação em Python, especialmente quando fila eficiente e processamento em lote são necessários. Aqui estão alguns exemplos de como o deque pode ser usado na prática:

  1. Autômatos finitos não determinísticos: Deques são ideais para implementar pilhas de estados em autômatos finitos não determinísticos. Eles permitem adição e remoção eficiente de estados no início e no final da lista, o que é crucial para a execução de operações automatizadas.
  2. Pesquisa de texto com expressões regulares: Deques pode ser usado para armazenar os últimos caracteres ou padrões vistos, o que pode ser útil ao realizar pesquisas de texto usando expressões regulares. Limitar o comprimento máximo do deque permite que caracteres mais antigos sejam removidos automaticamente.
  3. Empilhar itens com eficiência: Se você precisar de uma implementação eficiente de uma pilha, um deque pode ser usado para adicionar e remover elementos na extremidade esquerda. Isso permite a conclusão rápida e eficiente de tarefas em que o último item adicionado é removido primeiro.

O uso do Deques nessas áreas de aplicação melhora o desempenho e a eficiência do código e permite a implementação de soluções elegantes e eficientes.

Conclusão e resumo


O deque do Python é um método poderoso para adicionar e remover elementos de ambas as extremidades de uma estrutura de dados com eficiência. Com deque você pode implementar filas e pilhas elegantes, eficientes e Pythonicas. Comparado às listas, o deque apresenta algumas vantagens, como a execução estável e eficiente de operações de adição e remoção. Deques também são eficientes em termos de memória e thread-safe, o que melhora sua aplicação em determinados cenários.

O uso de deque em Python é simples e oferece uma variedade de funções e métodos para acessar e trabalhar com os elementos. Deques são ideais para aplicativos que exigem processamento eficiente de filas e lotes, como implementação de autômatos finitos não determinísticos ou pesquisa de texto com expressões regulares.

Testes de desempenho mostraram que deques são mais eficientes que listas em operações de adição e remoção. Adicionar elementos ao início de uma lista usando o método appendleft é várias vezes mais rápido do que adicionar elementos ao início de uma lista usando o método insert. Deques permitem desempenho consistente em operações de acréscimo e pop em ambas as extremidades.

No geral, o deque do Python é uma opção poderosa para desenvolvedores que precisam de fila eficiente e processamento em lote. Com deque você pode escrever código Python mais elegante, eficiente e melhorar o desempenho e a eficiência de seus aplicativos.

Perguntas frequentes

O que é um deque em Python?

Um deque é uma estrutura de dados especial em Python que fornece métodos rápidos e eficientes para adicionar e remover elementos em qualquer extremidade da estrutura.

Como posso usar um deque em Python?

Para um deque em Python Para utilizá-lo, você precisa importar o módulo “coleções” e chamar a classe deque. Você pode então adicionar, remover e acessar itens usando os métodos apropriados.

Em quais áreas de aplicação o deque é útil?

Deques são particularmente úteis ao implementar filas e pilhas em Python. Eles também oferecem vantagens no processamento de autômatos finitos não determinísticos e pesquisas de texto com expressões regulares.

Quais são as vantagens do deque sobre as listas?

Em comparação com as listas, as deques fornecem operações mais eficientes para adicionar e remover elementos em ambas as extremidades da estrutura de dados. Eles também são thread-safe e eficientes em termos de memória.

Qual é o desempenho dos deques em comparação com as listas?

Os testes de desempenho mostraram que deques são mais eficientes do que listas em operações como adicionar elementos ao início e ao final da estrutura de dados.

Posso acessar elementos arbitrários em um deque?

Sim, deques permitem acesso a elementos em posições arbitrárias na estrutura de dados sequencial.

Posso extrair partes de um deque?

Não, deques não suportam fatiamento, portanto não é possível extrair partes de um deque.

O uso de deque é recomendado em Python?

O uso do deque depende de requisitos específicos e otimização de desempenho. Em certos casos de uso que exigem adição e remoção eficiente de elementos, deque é uma boa escolha.

Referências de origem

Programação

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.