溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python 線程隊列PriorityQueue(優(yōu)先隊列)

發(fā)布時間:2020-07-29 05:13:59 來源:網(wǎng)絡(luò) 閱讀:425 作者:qq5d6f345f0205e 欄目:編程語言

在?線程隊列Queue?/?線程隊列LifoQueue?文章中分別介紹了先進(jìn)先出隊列Queue和先進(jìn)后出隊列LifoQueue,而今天給大家介紹的是最后一種:優(yōu)先隊列PriorityQueue,對隊列中的數(shù)據(jù)按照優(yōu)先級排序,那么具體怎么用呢?

?

一.隊列Queue分類:

1.線程隊列Queue?— FIFO(先進(jìn)先出隊列),即哪個數(shù)據(jù)先存入,取數(shù)據(jù)的時候先取哪個數(shù)據(jù),同生活中的排隊買東西;

2.線程隊列LifoQueue?— LIFO(先進(jìn)后出隊列),即哪個數(shù)據(jù)最后存入的,取數(shù)據(jù)的時候先取,如同打臺球,先進(jìn)洞的球最后取出,最后進(jìn)洞的球最先拿出;

3.線程隊列PriorityQueue?— PriorityQueue(優(yōu)先級隊列),即存入數(shù)據(jù)時候加入一個優(yōu)先級,取數(shù)據(jù)的時候優(yōu)先級最高的取出;

?

二.優(yōu)先隊列PriorityQueue簡介

在數(shù)據(jù)存入的時候設(shè)置優(yōu)先級,取數(shù)據(jù)的時候默認(rèn)按照優(yōu)先級最高的取出,注意:使用優(yōu)先級存數(shù)據(jù)取數(shù)據(jù),隊列中的數(shù)據(jù)必須是同一類型,舉個栗子:班級成績排名/身高排名……

值得注意的是:在將數(shù)據(jù)存入到優(yōu)先隊列PriorityQueue時,設(shè)置的值越小,優(yōu)先級越高;

?

三.優(yōu)先隊列PriorityQueue函數(shù)介紹

函數(shù)不做過多介紹了,已經(jīng)在?線程隊列Queue?有了詳細(xì)講解,兩者都屬于Queue,函數(shù)都一樣!

?

?

四.優(yōu)先隊列PriorityQueue使用

按優(yōu)先級:不管是數(shù)字、字母、列表、元組等(字典、集合沒測),使用優(yōu)先級存數(shù)據(jù)取數(shù)據(jù),隊列中的數(shù)據(jù)必須是同一類型,都是按照實際數(shù)據(jù)的ascii碼表的順序進(jìn)行優(yōu)先級匹配,漢字是按照unicode表。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

# !usr/bin/env python

# -*- coding:utf-8 _*-

"""

@Author:何以解憂

@Blog(個人博客地址): shuopython.com

@WeChat Official Account(微信公眾號):猿說python

@Github:www.github.com

?

@File:python_priorityqueue.py

@Time:2019/11/29 1queue5:25

?

@Motto:不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累!

"""

?

import queue

import threading

import time

?

q = queue.PriorityQueue()

q.put([1, 'ace'])

q.put([40, 333])

q.put([3, 'afd'])

q.put([5, '4asdg'])

# 1是級別最高的,

while not q.empty():??# 不為空時候執(zhí)行

????print(q.get())

?

?

?

q = queue.PriorityQueue()

q.put('我')

q.put('你')

q.put('他')

q.put('她')

q.put('ta')

while not q.empty():

????print(q.get())

輸出結(jié)果:

1

2

3

4

5

6

7

8

9

[1, 'ace']

[3, 'afd']

[5, '4asdg']

[40, 333]

ta

由此可見:在將數(shù)據(jù)存入到優(yōu)先隊列PriorityQueue時,設(shè)置的值越小,優(yōu)先級越高!

?

?

猜你喜歡:

1.python線程隊列Queue-FIFO

2.python線程隊列LifoQueue

3.python線程互斥鎖Lock

4.python線程時間Event

?

轉(zhuǎn)載請注明:猿說Python???python線程隊列PriorityQueue(優(yōu)先隊列)

?


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI