Python語(yǔ)言內(nèi)置了很多常見的數(shù)據(jù)結(jié)構(gòu),不僅能夠讓你的程序運(yùn)行速度更快還能幫助你簡(jiǎn)化開發(fā)流程,下面小千就來給大家介紹一下這個(gè)雙向隊(duì)列。
collections模塊中的deque類,就是雙向隊(duì)列,這種隊(duì)列可以從頭部或者尾部添加或者移除元素,這種操作的所消耗的時(shí)間時(shí)常數(shù)級(jí)別的,所以它非常合適表示先進(jìn)先出的隊(duì)列。
這種情況下,也許有人會(huì)說列表也可以做這種操作的,那么區(qū)別是什么?區(qū)別是列表是單向的,在尾部添加或者移除數(shù)據(jù)的操作耗時(shí)是常數(shù)級(jí)別的,但是如果在頭部添加或者移除數(shù)據(jù)卻是線性級(jí)別(耗時(shí)與數(shù)據(jù)大小成正比)的,那么對(duì)比雙向隊(duì)列來說,就慢許多了,可以看下面代碼
從上面兩組數(shù)據(jù)來看,列表list做先進(jìn)先出操作耗時(shí)比雙向隊(duì)列deque完成相應(yīng)的操作多很多的。所以要完成先進(jìn)先出的隊(duì)列操作時(shí)應(yīng)該選擇雙向隊(duì)列deque.
以上就是Python雙向隊(duì)列的介紹了,同學(xué)們記得自己上手去試一試加深記憶,最后歡迎對(duì)Python感興趣的同學(xué)來到千鋒Python培訓(xùn)班了解我們的Python學(xué)習(xí)課程,全程名師面授課程,更有兩周免費(fèi)試聽不滿意不繳費(fèi),趕緊來咨詢一下吧。