我已經用python得到了一點生鏽。一位朋友正在採取一些測試,他的考試做準備,他給了這一段代碼:Python .pop()不工作
stack = [3, 4, 5]
stack.append(6)
stack.pop()
他問什麼會在屏幕顯示和正確的答案是7。它是如何7?我甚至編寫了代碼並運行它。它是6.它是一個新版本返回數字+1還是什麼?或者,也許老師給出的答案是錯誤的。
我已經用python得到了一點生鏽。一位朋友正在採取一些測試,他的考試做準備,他給了這一段代碼:Python .pop()不工作
stack = [3, 4, 5]
stack.append(6)
stack.pop()
他問什麼會在屏幕顯示和正確的答案是7。它是如何7?我甚至編寫了代碼並運行它。它是6.它是一個新版本返回數字+1還是什麼?或者,也許老師給出的答案是錯誤的。
[3,4,5,6].pop()
既不Python 2中也不Python 3的返回7
(都返回6
)。
最明顯的答案是,這只是老師或你的朋友給你的例子時的一個錯字。
[3,4,5,6].pop()
相當於
[3,4,5,6].pop(-1)
兩個返回堆棧的最後一個(=頂部)元件。
隨着[3,4,5].append(6)
你追加一個6
堆棧→你在堆棧的頂部推6
。
因此,如果你執行
stack = [3,4,5]
stack.append(6)
stack.pop() # equ. to stack.pop(-1)
結果將是6
,不能7
。
對於如何以及爲什麼在Python列表可以用來作爲各種數據結構(棧,隊列的更詳細的解釋,...)考慮採取看看文檔:
https://docs.python.org/2/tutorial/datastructures.html
答案被接受爲正確的,但請提供一個簡短的解釋爲什麼流行返回6而不是7 :) – johnashu
老師給出的答案是錯誤的。
list.pop([i]) - 刪除列表中給定位置的項目,並返回 。如果沒有指定索引,則a.pop()將刪除並返回列表中的最後一個項目 。
stack = [3, 4, 5]
stack.append(6)
print(stack.pop())
print(stack)
輸出:
6
[3, 4, 5]
答案被接受爲正確的,但請提供一個簡單的解釋如何彈出工程,而不是鏈接:) – johnashu
我在這裏運行代碼,使用CMD和Python 3.6.2,這是輸出:
>>> stack = [3,4,5]
>>> stack.append(6)
>>> stack.pop()
6
>>>
當然,正確的答案是6
這必須是一個有趣的問題
stack = [3, 4, 5]
stack.append(6)
stack.pop()
回報
6
這是因爲你append
6到end
或top
的stack/list/array
。
A pop
命令遵循last in first out
規則,這意味着當您pop
stack/list /array
中的項目時,您將取出最後一項。
6
因此被最後一個項目追加,當你pop
的stack
的回報將是最後一個項目,在這種情況下6
你'追加(5)'然後你'POP()'它。所以它會打印'6'。 – Marco
在原始作業與您在此處發佈的內容之間的傳輸中,聲音可能已丟失。你在這裏發佈的內容不會打印7. – user2357112