簡體   English   中英

隊列上的就地反向對一個隊列有效,對另一個隊列返回 None

[英]In-place reverse on a queue works for one and returns None for the other

當我通過 Python 'collections' 模塊實現它時,我試圖反轉隊列,它似乎有時返回 None 並且有時按預期返回隊列的反轉。

文檔表明它應該返回 None 但如下所示它似乎有些不一致。

我在正在閱讀的書中看到的示例代碼是這樣的:

from collections import deque

elems = (2, 6, 12, 20)
dequeObject = deque(elems)

print("Deque object before reversal:")
print(dequeObject)

retVal = dequeObject.reverse()

print("Deque object after reversal:")
print(dequeObject)

這反過來返回

反轉前的雙端隊列 object:

雙端隊列([2, 6, 12, 20])

反轉后的雙端隊列 object:

雙端隊列([20, 12, 6, 2])

當我嘗試自己基本上做同樣的事情時:

from collections import deque

my_nums = (1,2,3,4)
my_queue = deque(my_nums)

print(my_queue)

new_queue = my_queue.reverse()
print(new_queue)

它返回

雙端隊列([1, 2, 3, 4])

沒有任何

有人可以解釋為什么會發生這種情況以及我所做的與示例不同的事情嗎? 旁注,我最初嘗試像這樣將元素推送到隊列中,這就是為什么我認為它拒絕反轉它。

from collections import deque

my_queue = deque()

my_queue.append('hello')
my_queue.append(True)
my_queue.append('salamander')
my_queue.append(3)

print(my_queue)

new_queue = my_queue.reverse()

print(new_queue)

.reverse()就地執行反向操作,不返回任何內容; 使用reversed來創建一個新的deque

new_queue = deque(reversed(my_queue))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM