


Parlons de la file d'attente bidirectionnelle de Python
Oct 27, 2020 pm 05:09 PMTutoriel PythonAujourd'hui, nous introduisons les files d'attente bidirectionnelles.
Bien que vous puissiez utiliser les méthodes .append et .pop des listes Python pour simuler une pile ou une file d'attente, en supprimant le premier élément de la liste ou le premier Ajouter un nouvel élément avant chaque élément prend beaucoup de temps. Parce que tous les éléments de la liste doivent être déplacés vers l'arrière.
La file d'attente bidirectionnelle de Python est implémentée à l'aide de la classe collections.deque. Il s'agit d'une classe thread-safe qui peut rapidement ajouter ou supprimer des éléments aux deux extrémités.
deque /dɛk/
Vous pouvez également utiliser la classe collections.deque pour implémenter la mise en cache. Tout d’abord, spécifiez la taille de la file d’attente du cache, puis supprimez les éléments expirés de la tête de la file d’attente et ajoutez de nouveaux éléments à la queue.
Luciano Ramalho a donné un exemple pour illustrer l'utilisation de base des files d'attente bidirectionnelles.
from collections import deque dq = deque(range(10), maxlen=10) logging.info('dq -> %s', dq) dq.rotate(3) logging.info('dq -> %s', dq) dq.rotate(-4) logging.info('dq -> %s', dq) dq.extend([11, 22, 33]) logging.info('dq -> %s', dq) dq.extendleft([10, 20, 30, 40]) logging.info('dq -> %s', dq)复制代码
Résultats d'exploitation :
INFO - dq -> deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9], maxlen=10) INFO - dq -> deque([7, 8, 9, 0, 1, 2, 3, 4, 5, 6], maxlen=10) INFO - dq -> deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 0], maxlen=10) INFO - dq -> deque([4, 5, 6, 7, 8, 9, 0, 11, 22, 33], maxlen=10) INFO - dq -> deque([40, 30, 20, 10, 4, 5, 6, 7, 8, 9], maxlen=10)复制代码
- maxlen est un paramètre facultatif de deque, qui est utilisé pour spécifier la capacité de la file d'attente, c'est-à-dire le nombre d'éléments qui peuvent être placés. La méthode
- rotate() peut faire pivoter la file d'attente. Il a un paramètre d'entrée n Lorsque n > 0, les n éléments commençant par le côté le plus à droite de la file d'attente seront déplacés vers la gauche. Lorsque n
- extend() peut ajouter de nouveaux éléments à la file d'attente. Elle accepte une liste comme paramètre d'entrée et ajoutera tous les éléments de la liste à la file d'attente. Les nouveaux éléments sont placés sur le côté droit de la file d'attente.
- Si la file d'attente s'avère pleine lors de l'ajout d'un nouvel élément, l'élément en tête de file sera automatiquement supprimé. La méthode
- extendleft(iter) consiste à placer l'élément nouvellement ajouté sur le côté gauche de la file d'attente. Les autres propriétés sont les mêmes que la méthode extend().
La file d'attente bidirectionnelle n'est pas parfaite. Si vous supprimez un élément du milieu de la file d'attente, il sera plus lent car il n'est optimisé que pour les opérations de tête et de queue de la file d'attente.
Recommandations d'apprentissage gratuites associées : Tutoriel Python(vidéo)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Quels sont les avantages et les inconvénients des modèles ?

Google AI annonce Gemini 1.5 Pro et Gemma 2 pour les développeurs

Pour seulement 250$, le directeur technique de Hugging Face vous apprend étape par étape comment peaufiner Llama 3

Partagez plusieurs frameworks de projets open source .NET liés à l'IA et au LLM

Un guide complet sur le débogage et l'analyse des fonctions Golang

Comment enregistrer la fonction d'évaluation
