我編寫了一個快速的Python函數來反轉堆棧的內容。Python堆棧內容在傳遞給函數時被覆蓋
def ReverseStack(input_stack):
oldStack = input_stack
newStack = Stack()
while not oldStack.isEmpty():
item = oldStack.pop()
newStack.push(item)
return newStack
s = Stack()
s.push('hello')
s.push('world')
s.push('I')
s.push('live')
s.push('underwater')
new = ReverseStack(s)
print "\nOriginal stack..."
while not s.isEmpty():
print s.pop()
print "\nNew stack..."
while not new.isEmpty():
print new.pop()
然而,當我去打印每個堆棧中的內容(原件和反向)看起來好像所有的原棧的內容已經通過pop方法去除。這使我感到困惑,因爲我將它作爲參數傳遞給一個函數,該函數創建了一個臨時堆棧來彈出內容。我認爲這種方式會使原文保持原樣。
我的問題是爲什麼會發生這種情況,糾正它的最好方法是什麼?謝謝!
不錯,我知道它必須是這樣的,我只是不知道如何去解決它。謝謝! – StormTrooper123 2014-10-03 22:21:03