[英]how can I program my code so it displays a stack order from top to bottom in python for a LIFO structure
i've got the code working but I've written my code in python implementing a stack, it is pushing and popping following LIFO but when you view the list it prints it as: 我已经执行了代码,但是我已经用Python编写了实现堆栈的代码,它会按照LIFO进行推送和弹出,但是当您查看列表时,它将打印为:
1
2
3
showing the last item which is 3 at the bottom, how can I make it show the last item at the top like a proper stack? 在底部显示最后一项为3,我如何使其在顶部显示最后一项,如适当的堆叠?
my code is as follows: 我的代码如下:
stack_pointer = 0
stack =[]
max_length = 2
def view():
for x in range (len(stack)):
print(stack[x])
def push():
global stack_pointer
if len (stack)> max_length:
print("Maximum stack length reached!")
else:
stack_pointer = stack_pointer + 1
item = input("Please enter the item you wishto add to the stack: ")
stack.append(item)
def pop():
global stack_pointer
if len (stack)<= 0:
print ("stack is empty!")
else:
item = stack.pop
stack_pointer = stack_pointer - 1
print ("you just popped out: ", item)
while True:
print ("")
print("Python implementation of a stack")
print("********************************")
print("1. view Stack")
print("2. Push onto Stack")
print("3. Pop out of Stack")
print("********************************")
print("")
menu_choice = int (input("Please enter your menu choice: "))
print ("")
print ("")
if menu_choice == 1:
view()
elif menu_choice == 2:
push()
elif menu_choice == 3:
pop()
Try something like this: 尝试这样的事情:
def view():
print(list(reversed(stack)))
to create reversed copy of your list and print it out. 创建列表的反向副本并打印出来。
This should work: a start
of the stack's length - 1 , a stop
of -1, and step
of -1; 这应该起作用:堆栈长度的
start
-1, stop
处-1, step
长-1; no new lists are created or any extra operations, only a modification of the range
object parameters, thus it's efficient: 无需创建新列表或进行任何其他操作,只需修改
range
对象参数即可,因此非常有效:
def view():
for x in range (len(stack) - 1, -1, -1):
print(stack[x]) # or print(stack[x], end=' ')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.