Python數(shù)據(jù)類型:雙端隊列deque-比列表list性能更高的一種數(shù)據(jù)類型

Python數(shù)據(jù)類型:雙端隊列

說到容器類型,大家第一時間想到的多半是list,而list確實也能解決大部分的需要,但碰到列表內(nèi)的數(shù)據(jù)量相當(dāng)大的時候,性能問題就顯得尤為重要;再或者列表被惡意注入一個無窮大的數(shù)據(jù)量時,就可能會暴露出安全問題來。較好的替代方法是:collections.deque。獲得性能或安全的同時,犧牲的是數(shù)據(jù)大小。

創(chuàng)新互聯(lián)公司服務(wù)項目包括龍馬潭網(wǎng)站建設(shè)、龍馬潭網(wǎng)站制作、龍馬潭網(wǎng)頁制作以及龍馬潭網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,龍馬潭網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到龍馬潭省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

deque隊列兩端取出或者刪除時間復(fù)雜度都是O(1),而列表都是O(n),隊列的性能比列表更好

簡介

歡迎關(guān)注我的公眾號:Python雁橫

collections.deque對象(雙端隊列),支持從任意一端增加刪除元素。deque是線程安全的,內(nèi)存高效的隊列,它被設(shè)計為從兩端追加和彈出都非???。

創(chuàng)建deque對象

deque()用于創(chuàng)建一個deque對象

可選參數(shù)

  • iterable 一個可迭代對象,如列表,元組
  • maxlen 最大長度,超出最大長度,會將之前的元素擠出去

示例:

from collections import deque
dq = deque([1,2,3,4]],maxlen=10)

deque對象的方法

dq.append(x)在右端添加x

>>>dq.append(5)
>>>print(dq)
deque([1, 2, 3,4,5])

dq.appendleft(x)在左端添加x

>>>dq.appendleft(0)
>>>print(dq)
deque([0,1,2,3,4,5])

dq.pop()在右端彈出元素,若隊列無元素,會報錯

>>>dq.pop()
5

dq.popleft()在左端彈出元素,若隊列無元素,會報錯

>>>dq.popleft()
0

dq.extend(iterable)和列表的extend類似,在右側(cè)擴展隊列,參數(shù)是一個可迭代對象

>>>dq.extend([5,6,7,8])

dq.extendleft(iterable)同理

>>>dq.extendleft([5,6,7,8])

dq.remove(value)移除第一個找到的value,若未找到,會導(dǎo)致IndexError

dq.remove(3)

dq.clear()清空隊列

dq.clear()

rotate(n)如果n>0,所有元素向右移動n個,否則向左

dq.rotate(5)

如果你學(xué)到什么,記得給我點個贊哦,也可以關(guān)注我的公眾號(Python雁橫)獲取更多有趣的教程

本文名稱:Python數(shù)據(jù)類型:雙端隊列deque-比列表list性能更高的一種數(shù)據(jù)類型
地址分享:http://bm7419.com/article38/jceopp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)做網(wǎng)站、手機網(wǎng)站建設(shè)、網(wǎng)站收錄移動網(wǎng)站建設(shè)、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運營