Coletânea Python do ZERO às Redes Neurais Artificiais

Fernando Feltrin · Capítulo 195 de 287

Páginas do PDF

Coletânea Python do ZERO às Redes Neurais Artificiais

Gerenciamento de filas via Deque

 

 

Uma vez entendida a lógica de gerenciamento de filas a partir do exemplo anterior, hora de conhecer um método alternativo baseado em uma biblioteca nativa do Python chamada Deque.

Raciocine que em programação você dificilmente irá reinventar a roda, mas existe uma série de possibilidades de melhorar a mesma.

Conferindo repositórios de bibliotecas é possível ver que existem centenas de milhares de bibliotecas, módulos e pacotes criados pela comunidade a fim de otimizar ou implementar funcionalidades no Python.

 

Como sempre, todo processo se inicia pela importação das bibliotecas, módulos e pacotes que serão utilizados ao longo de nosso código. Nesse caso, da biblioteca typing importamos Deque e Any. Da mesma forma da biblioteca collections importamos deque.

 

Em seguida criamos uma variável de nome fila2 que por sua vez instancia Deque com um objeto qualquer em sua posição inicial e recebe como atributo a função deque( ), sem parâmetros mesmo.

Na sequência já podemos, como de costume, manipular dados da mesma forma que costumamos fazer em listas básicas, por meio da função append( ) podemos adicionar elementos a nossa fila.

Por meio do laço for podemos fazer a varredura dessa lista e verificar quantos e quais elementos compõem essa fila.

 

Como esperado, os elementos foram adicionados sequencialmente conforme ordem de adição.

 

Para removermos elementos de nossa fila, via deque( ) usamos da função popleft( ) uma vez que queremos remover o primeiro elemento da fila, sendo o segundo assumindo a posição de primeiro, o terceiro a do segundo, respectivamente independente da quantidade de elementos na fila.

 

Da mesma forma, como no bloco anterior, via laço for podemos percorrer a fila após a atualização da mesma.

 

E como esperado, a nova leitura da fila nos mostra que Carlos agora ocupa a primeira posição da fila e os demais nas suas respectivas posições.

Apenas uma observação, para concluirmos nossa linha de raciocínio, filas geradas via Deque possuem índice, você pode usar de qualquer função ao qual está habituado a usar em uma lista comum, porém você deve tomar o cuidado de não tentar remover, por exemplo, o elemento 0 via índice, nesse caso irá gerar um erro de interpretação, haja visto que essa biblioteca não possui internamente todos validadores que criamos no exemplo anterior manualmente.