亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python雙向隊(duì)列deque的使用

 更新時(shí)間:2023年06月30日 10:12:16   作者:cv_lhp  
本文主要介紹了python雙向隊(duì)列deque的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

雙向隊(duì)列deque

雙端隊(duì)列,可以快速的從另外一側(cè)追加和推出對(duì)象,deque是一個(gè)雙向鏈表,針對(duì)list連續(xù)的數(shù)據(jù)結(jié)構(gòu)插入和刪除進(jìn)行優(yōu)化。

它提供了兩端都可以操作的序列,這表示在序列的前后你都可以執(zhí)行添加或刪除操作。雙向隊(duì)列(deque)對(duì)象支持以下方法:

1. append()

添加元素x到隊(duì)列右端

###定義deque(字符串形式)
d = deque('ghi')  
##或者列表形式定義deque:
# d = deque(['g', 'h', 'i'])
d.append('j') 
d
deque(['g', 'h', 'i', 'j'])

2. appendleft()

添加元素x到隊(duì)列左端

d.appendleft('f')
d
deque(['f', 'g', 'h', 'i', 'j'])

3. clear()

移除所有元素,使其長(zhǎng)度為0

d = deque('ghi')
d.clear()
d
deque([])

4. copy()

創(chuàng)建一份淺拷貝

d = deque('xiaoweuge')
y = d.copy()
print(y)
deque(['x', 'i', 'a', 'o', 'w', 'e', 'u', 'g', 'e'])

5. count()

計(jì)算 deque 中元素等于 x 的個(gè)數(shù)

d = deque('xiaoweuge-shuai')
d.count('a')
2

6. extend()

擴(kuò)展deque的右側(cè),通過(guò)添加iterable參數(shù)中的元素

a = deque('abc')
b = deque('cd')
a.extend(b)
a
deque(['a', 'b', 'c', 'c', 'd'])
#與append 的區(qū)別
a = deque('abc')
b = deque('cd')
a.append(b)
deque(['a', 'b', 'c', deque(['c', 'd'])])

7. extendleft()

擴(kuò)展deque的左側(cè),通過(guò)添加iterable參數(shù)中的元素。注意對(duì)左添加時(shí),在結(jié)果中iterable參數(shù)中的順序?qū)⒈环催^(guò)來(lái)添加

a = deque('abc')
b = deque('cd')
a.extendleft(b)
a
deque(['d', 'c', 'a', 'b', 'c'])

8. index()

返回元素 x 在 deque 中的位置(在索引 start 之后,索引 stop 之前)。 返回第一個(gè)匹配項(xiàng),如果未找到則引發(fā) ValueError

d = deque('xiaoweuge')
d.index('w')
4

9. insert()

在位置 i 插入 x ,如果插入會(huì)導(dǎo)致一個(gè)限長(zhǎng) deque 超出長(zhǎng)度 maxlen 的話,就引發(fā)一個(gè) IndexError

a = deque('abc')
a.insert(1,'X')
deque(['a', 'X', 'b', 'c'])

10. pop()

移去并且返回deque 最右側(cè)的那一個(gè)元素。 如果沒(méi)有元素的話,就引發(fā)一個(gè) IndexError

d = deque('abcj')
d.pop()      
'j'

11. popleft()

移去并且返回一個(gè)元素,deque 最左側(cè)的那一個(gè)元素。 如果沒(méi)有元素的話,就引發(fā) IndexError

d = deque('abcj')
d.popleft()
'a'

12. remove(value)

移除找到的第一個(gè) value。 如果沒(méi)有的話就引發(fā) ValueError

a = deque('abca')
a.remove('a')
a
deque(['b', 'c', 'a'])

13. reverse()

將deque逆序排列,返回 None

#逆序排列
d = deque('ghi') # 創(chuàng)建一個(gè)deque
list(reversed(d))
['i', 'h', 'g']
deque(reversed(d))
deque(['i', 'h', 'g'])

14. rotate(n=1)

向右循環(huán)移動(dòng) n 步。 如果 n 是負(fù)數(shù),就向左循環(huán)。如果deque不是空的,向右循環(huán)移動(dòng)一步就等價(jià)于 d.appendleft(d.pop()) , 向左循環(huán)一步就等價(jià)于 d.append(d.popleft())

# 向右邊擠一擠
d = deque('ghijkl')
d.rotate(1) ? ? ? ? ? ? ? ? ? ? ?
d
deque(['l', 'g', 'h', 'i', 'j', 'k'])
# 向左邊擠一擠
d.rotate(-1) ? ? ? ? ? ? ? ? ? ??
d
deque(['g', 'h', 'i', 'j', 'k', 'l'])
#看一個(gè)更明顯的
x = deque('12345')
x
deque(['1', '2', '3', '4', '5'])
x.rotate()
x
deque(['5', '1', '2', '3', '4'])
d = deque(['12','av','cd'])
d.rotate(1)
deque(['cd', '12', 'av']

15. maxlen

Deque的最大尺寸,如果沒(méi)有限定的話就是 None

from collections import deque
d=deque(maxlen=10)
for i in range(20):
   d.append(i)
d  
deque([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])

16. 其他操作

除了以上操作,deque還支持迭代、封存、len(d)、reversed(d)、copy.deepcopy(d)、copy.copy(d)、成員檢測(cè)運(yùn)算符 in 以及下標(biāo)引用例如通過(guò) d[0] 訪問(wèn)首個(gè)元素等。 索引訪問(wèn)在兩端的復(fù)雜度均為 O(1) 但在中間則會(huì)低至 O(n)。 如需快速隨機(jī)訪問(wèn),請(qǐng)改用列表。

Deque從版本3.5開始支持 __ add (), mul __(),和 __ imul __() 操作。

from collections import deque
d = deque('ghi') ? ? ? ? ? ? ? ? # 創(chuàng)建一個(gè)deque
for elem in d:
? ? print(elem.upper())
G
H
I
#從右邊添加一個(gè)元素
d.append('j')
d ??
deque(['g', 'h', 'i', 'j'])
#從左邊添加一個(gè)元素
d.appendleft('f')
d?
deque(['f', 'g', 'h', 'i', 'j'])
#右邊刪除
d.pop() ? ? ? ? ? ? ? ? ? ? ? ? ?
'j'
#左邊邊刪除
d.popleft()
'f'
#看看還剩下啥
list(d) ? ? ? ? ? ? ? ? ? ? ? ? ?#?
['g', 'h', 'i']
#成員檢測(cè)
'h' in d ? ? ? ? ? ? ? ? ? ? ? ??
True
#添加多個(gè)元素
d.extend('jkl') ? ? ? ? ? ? ?
d
deque(['g', 'h', 'i', 'j', 'k', 'l'])
d.clear() ? ? ? ? ? ? ? ? ? ? ? ?# empty the deque
d.pop() ? ? ? ? ? ? ? ? ? ? ? ? ?# cannot pop from an empty deque
Traceback (most recent call last):
? ? File "<pyshell#6>", line 1, in -toplevel-
? ? ? ? d.pop()
IndexError: pop from an empty deque
d.extendleft('abc') ? ? ? ? ? ? ?# extendleft() reverses the input order
d
deque(['c', 'b', 'a']

參考鏈接

【萬(wàn)字長(zhǎng)文詳解】Python庫(kù)collections,讓你擊敗99%的Pythoner

到此這篇關(guān)于python雙向隊(duì)列deque的使用的文章就介紹到這了,更多相關(guān)python雙向隊(duì)列deque內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python中ini配置文件的寫入與讀取的操作示例

    Python中ini配置文件的寫入與讀取的操作示例

    本文詳細(xì)介紹了如何在Python中使用configparser模塊進(jìn)行INI文件的讀寫操作,包括基本用法、高級(jí)用法以及創(chuàng)建、讀取和管理配置文件的實(shí)例演示,需要的朋友可以參考下
    2025-03-03
  • python數(shù)據(jù)分析基礎(chǔ)之pandas中l(wèi)oc()與iloc()的介紹與區(qū)別介紹

    python數(shù)據(jù)分析基礎(chǔ)之pandas中l(wèi)oc()與iloc()的介紹與區(qū)別介紹

    我們經(jīng)常在尋找數(shù)據(jù)的某行或者某列的時(shí)常用到Pandas中的兩種方法iloc和loc,兩種方法都接收兩個(gè)參數(shù),第一個(gè)參數(shù)是行的范圍,第二個(gè)參數(shù)是列的范圍,這篇文章主要介紹了python數(shù)據(jù)分析基礎(chǔ)之pandas中l(wèi)oc()與iloc()的介紹與區(qū)別,需要的朋友可以參考下
    2024-07-07
  • Python pandas入門系列之眾數(shù)和分位數(shù)

    Python pandas入門系列之眾數(shù)和分位數(shù)

    分位數(shù)(Quantile),也稱分位點(diǎn),是指將一個(gè)隨機(jī)變量的概率分布范圍分為幾個(gè)等份的數(shù)值點(diǎn),分析其數(shù)據(jù)變量的趨勢(shì),而眾數(shù)(Mode)是代表數(shù)據(jù)的一般水平,這篇文章主要給大家介紹了Python pandas系列之眾數(shù)和分位數(shù)的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • python查看矩陣的行列號(hào)以及維數(shù)方式

    python查看矩陣的行列號(hào)以及維數(shù)方式

    這篇文章主要介紹了python查看矩陣的行列號(hào)以及維數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python實(shí)現(xiàn)四個(gè)經(jīng)典小游戲合集

    Python實(shí)現(xiàn)四個(gè)經(jīng)典小游戲合集

    這篇文章主要介紹了利用Python編寫一個(gè)經(jīng)典小游戲的合集,包括:貪吃蛇,掃雷,俄羅斯方塊,五子棋。感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2021-12-12
  • 簡(jiǎn)單介紹Python中的readline()方法的使用

    簡(jiǎn)單介紹Python中的readline()方法的使用

    這篇文章主要介紹了簡(jiǎn)單介紹Python中的readline()方法的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • Python?PyCharm無(wú)法打開終端命令行最終解決方案(實(shí)測(cè)成功)

    Python?PyCharm無(wú)法打開終端命令行最終解決方案(實(shí)測(cè)成功)

    這篇文章主要介紹了在使用PyCharm?2024版本時(shí)遇到的無(wú)法打開終端的問(wèn)題,文中提供了兩種解決方案,大家可以根據(jù)自己的需求選擇對(duì)應(yīng)的解決方法,需要的朋友可以參考下
    2024-12-12
  • 使用Python制作一盞 3D 花燈喜迎元宵佳節(jié)

    使用Python制作一盞 3D 花燈喜迎元宵佳節(jié)

    這篇文章主要介紹了用Python制作一盞 3D 花燈喜迎元宵佳節(jié),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • 使用Python在PowerPoint演示文稿之間復(fù)制樣式

    使用Python在PowerPoint演示文稿之間復(fù)制樣式

    在專業(yè)演示文稿設(shè)計(jì)與制作領(lǐng)域,多場(chǎng)演示間保持一致性至關(guān)重要,在PowerPoint演示文稿之間復(fù)制幻燈片母版成為了一項(xiàng)關(guān)鍵技巧,本文中,我們將探討如何使用Python在不同的PowerPoint演示文稿之間復(fù)制幻燈片母版,提升演示文稿創(chuàng)作流程的效率與美觀度,需要的朋友可以參考下
    2024-05-05
  • python創(chuàng)建Flask Talisman應(yīng)用程序的步驟詳解

    python創(chuàng)建Flask Talisman應(yīng)用程序的步驟詳解

    Flask是一個(gè)功能強(qiáng)大的Web框架,主要用于使用Python語(yǔ)言開發(fā)有趣的Web應(yīng)用程序,Talisman基本上是一個(gè)Flask擴(kuò)展,用于添加HTTP安全標(biāo)頭我們的Flask應(yīng)用程序易于實(shí)施,本文就給大家講講帶Talisman的Flask安全性,需要的朋友可以參考下
    2023-09-09

最新評(píng)論