Cola de prioridad de Python: una guìa
Una cola de prioridad de Python almacena datos en un orden particular. Hay dos formas de implementar una cola de prioridad en Python: usando la clase de cola y usando el mòdulo heapq.
Es posible que desee ordenar los datos en funciòn de los valores de cada elemento de la lista. Por ejemplo, es posible que desee que el valor más alto aparezca primero en la lista y que el valor más bajo aparezca al final de la lista.
Ahì es donde entran las colas de prioridad. Una cola de prioridad es una estructura de datos que almacena datos basados ‚Äã‚Äãen el valor de sus claves en orden ascendente. Esto le permite acceder fácilmente al valor más peque√±o y más grande de la cola.
Este tutorial explicará por qué no debe usar una lista para crear colas de prioridad. Le mostraremos dos enfoques más eficientes que puede utilizar para crear una cola de prioridad de Python.
¿Qué es una cola de prioridad de Python?
Las colas de prioridad son una versiòn modificada de una cola que almacena datos en orden de qué elemento tiene la mayor prioridad. La prioridad de cada elemento en una cola de prioridad se decide seg√∫n el valor del elemento.
En informática, las colas son estructuras de datos que almacenan elementos en el orden primero en entrar, primero en salir (FIFO) . Hay algunos escenarios en los que el uso de esta estructura puede resultar √∫til.
Por ejemplo, suponga que está creando una aplicaciòn de seguimiento de pedidos para un restaurante. La persona que hace un pedido primero debe ser atendida antes que las personas que hacen el pedido a continuaciòn. Para realizar un seguimiento de los pedidos, le recomendamos que utilice una cola.
Hay dos formas de definir una cola de prioridad en Python:
El 81% de los participantes declarò que se sentìa más seguro acerca de sus perspectivas laborales después de asistir a un campamento de entrenamiento. Asòciese a un bootcamp hoy.
El graduado promedio de un bootcamp pasò menos de seis meses en la transiciòn profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.
Puede definir una cola de prioridad usando una estructura de lista. Pero esta estrategia es menos eficiente que usar la clase de cola PriorityQueue o el mòdulo heapq.
Priority Queue Python: queue.PriorityQueue
La queue.PriorityQueue La clase crea una cola de prioridad de Python. Esta clase es parte de la biblioteca de colas de Python. Necesita importar la biblioteca de colas para usar esta clase. Para recuperar un elemento de PriorityQueue, puede usar el método get ().
Para acceder a la clase PriorityQueue, necesitamos importarlo a nuestro còdigo, lo que podemos hacer usando este Declaraciòn de importaciòn de Python :
Supongamos que queremos crear una cola de prioridad para los poseedores de entradas en un concierto local. Podrìamos hacerlo usando este còdigo:
Nuestro còdigo devuelve:
En nuestro còdigo, primero importamos la clase PriorityQueue de la biblioteca queue , luego inicializamos una cola de prioridad denominada titulares de entradas . A continuaciòn, insertamos tres tuplas en nuestra cola de prioridad, que almacenan los n√∫meros de ticket y los nombres asociados con un ticket.
Usamos un bucle while de Python para revisar cada elemento en la cola de prioridad de titulares de entradas . Luego, recuperamos ese elemento usando get () .
El método queue.PriorityQueue es eficiente y fácil de usar, lo que lo convierte en una excelente opciòn para cuando necesite crear una cola de prioridad.
Mòdulo heapq de Python de cola de prioridad
El mòdulo heapq le permite definir una cola de prioridad de Python. Una estructura de datos heapq elimina elementos en orden de prioridad. El valor más bajo tiene la prioridad más baja y el valor más alto tiene la prioridad más alta en la estructura de heapq.