最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python雙向隊列deque的使用

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

雙向隊列deque

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

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

1. append()

添加元素x到隊列右端

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

2. appendleft()

添加元素x到隊列左端

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

3. clear()

移除所有元素,使其長度為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()

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

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

6. extend()

擴(kuò)展deque的右側(cè),通過添加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è),通過添加iterable參數(shù)中的元素。注意對左添加時,在結(jié)果中iterable參數(shù)中的順序?qū)⒈环催^來添加

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

8. index()

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

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

9. insert()

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

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

10. pop()

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

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

11. popleft()

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

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

12. remove(value)

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

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

13. reverse()

將deque逆序排列,返回 None

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

14. rotate(n=1)

向右循環(huán)移動 n 步。 如果 n 是負(fù)數(shù),就向左循環(huán)。如果deque不是空的,向右循環(huán)移動一步就等價于 d.appendleft(d.pop()) , 向左循環(huán)一步就等價于 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'])
#看一個更明顯的
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的最大尺寸,如果沒有限定的話就是 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)、成員檢測運(yùn)算符 in 以及下標(biāo)引用例如通過 d[0] 訪問首個元素等。 索引訪問在兩端的復(fù)雜度均為 O(1) 但在中間則會低至 O(n)。 如需快速隨機(jī)訪問,請改用列表。

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

from collections import deque
d = deque('ghi') ? ? ? ? ? ? ? ? # 創(chuàng)建一個deque
for elem in d:
? ? print(elem.upper())
G
H
I
#從右邊添加一個元素
d.append('j')
d ??
deque(['g', 'h', 'i', 'j'])
#從左邊添加一個元素
d.appendleft('f')
d?
deque(['f', 'g', 'h', 'i', 'j'])
#右邊刪除
d.pop() ? ? ? ? ? ? ? ? ? ? ? ? ?
'j'
#左邊邊刪除
d.popleft()
'f'
#看看還剩下啥
list(d) ? ? ? ? ? ? ? ? ? ? ? ? ?#?
['g', 'h', 'i']
#成員檢測
'h' in d ? ? ? ? ? ? ? ? ? ? ? ??
True
#添加多個元素
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']

參考鏈接

【萬字長文詳解】Python庫collections,讓你擊敗99%的Pythoner

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

相關(guān)文章

  • Python基礎(chǔ)之注釋的寫法(單行多行文檔注釋)

    Python基礎(chǔ)之注釋的寫法(單行多行文檔注釋)

    本文介紹了Python中注釋的寫法(單行多行文檔注釋)的重要性和應(yīng)用場景,詳細(xì)講解了注釋的核心原理和實現(xiàn)方法,并提供了環(huán)境準(zhǔn)備、基礎(chǔ)示例和進(jìn)階示例,文章還討論了常見問題和解決方案、最佳實踐和安全注意事項,并提供了學(xué)習(xí)建議和延伸閱讀資源,需要的朋友可以參考下
    2026-05-05
  • Python 垃圾回收機(jī)制詳解

    Python 垃圾回收機(jī)制詳解

    這篇文章主要為大家介紹了Python 垃圾回收機(jī)制,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python字典實現(xiàn)偽切片功能

    Python字典實現(xiàn)偽切片功能

    這篇文章主要介紹了Python字典實現(xiàn)偽切片功能,本文通過實例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10
  • Python?if?else條件語句形式詳解

    Python?if?else條件語句形式詳解

    這篇文章主要介紹了Python?if?else條件語句形式詳解,在?Python?中,可以使用?if?else?語句對條件進(jìn)行判斷,然后根據(jù)不同的結(jié)果執(zhí)行不同的代碼,這稱為選擇結(jié)構(gòu)或者分支結(jié)構(gòu),接下來小編就根據(jù)情況的不同介紹if?else條件語句形式的不同,需要的朋友可以參考一下
    2022-03-03
  • VSCode下配置python調(diào)試運(yùn)行環(huán)境的方法

    VSCode下配置python調(diào)試運(yùn)行環(huán)境的方法

    這篇文章主要介紹了VSCode下配置python調(diào)試運(yùn)行環(huán)境的方法,需要的朋友可以參考下
    2018-04-04
  • python的dataframe和matrix的互換方法

    python的dataframe和matrix的互換方法

    下面小編就為大家分享一篇python的dataframe和matrix的互換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • 深入解析NumPy的核心函數(shù)np.array()

    深入解析NumPy的核心函數(shù)np.array()

    NumPy為Python提供了高效的多維數(shù)組對象以及一系列用于處理這些數(shù)組的工具,極大地簡化了數(shù)值計算的過程,而np.array()作為NumPy庫的核心函數(shù)之一,是創(chuàng)建和操作數(shù)組的基礎(chǔ),感興趣的可以了解一下
    2025-07-07
  • Python入門教程(四十一)Python的NumPy數(shù)組索引

    Python入門教程(四十一)Python的NumPy數(shù)組索引

    這篇文章主要介紹了Python入門教程(四十一)Python的NumPy數(shù)組索引,數(shù)組索引是指使用方括號([])來索引數(shù)組值,numpy提供了比常規(guī)的python序列更多的索引工具,除了按整數(shù)和切片索引之外,數(shù)組可以由整數(shù)數(shù)組索引、布爾索引及花式索引,需要的朋友可以參考下
    2023-05-05
  • pandas中對文本類型數(shù)據(jù)的處理小結(jié)

    pandas中對文本類型數(shù)據(jù)的處理小結(jié)

    這篇文章主要介紹了pandas中對于文本類型數(shù)據(jù)的處理匯總,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • Python中繪制折線圖的全面指南(非常詳細(xì)!)

    Python中繪制折線圖的全面指南(非常詳細(xì)!)

    對于數(shù)據(jù)而言一般都會使用折線圖反映數(shù)據(jù)背后的趨勢,下面這篇文章主要給大家介紹了關(guān)于Python中繪制折線的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08

最新評論

荣昌县| 河源市| 河西区| 葫芦岛市| 西青区| 吴川市| 宣武区| 阳信县| 镇康县| 塔城市| 航空| 六安市| 峨山| 成安县| 景德镇市| 祁阳县| 梁平县| 新兴县| 剑阁县| 潼南县| 宜章县| 周宁县| 新蔡县| 义乌市| 霍州市| 岳普湖县| 中宁县| 南投市| 乌苏市| 沙坪坝区| 永兴县| 沈阳市| 洛隆县| 横山县| 宝丰县| 康平县| 景洪市| 海门市| 门头沟区| 江安县| 衢州市|