有人知道如何在堆栈中打印多个元素/项目吗?据我所知,要使用从列表中选择范围号就是使用范围,但是我该如何使用堆栈呢?我已经尝试过像for范围内的循环(第一个元素,最后一个元素),但是在尝试代码时遇到了一些错误。
这里是我当前的工作代码:
import random
class Stack:
def __init__(self):
self.container = []
def isEmpty(self):
return self.size() == 0
def push(self, item):
self.container.append(item)
def peek(self) :
if self.size()>0 :
return self.container[-1]
else :
return None
def pop(self):
return self.container.pop()
def size(self):
return len(self.container)
Gift = Stack()
GiftTemp = Stack()
GiftWin = Stack()
GiftResult = Stack()
Gift.push ("Smart Watch")
Gift.push ("Gadget Key Chain")
Gift.push ("Happy Birthday Photo Frame")
Gift.push ("Silver Heart Pendant")
Gift.push ("Nike Cap")
Gift.push ("Stuffed Bunny Toy")
Gift.push ("Wireless Headphones")
Gift.push ("iPhone XS")
print("~ Mystery Gift Vending Machine ~")
size = Gift.size()+1
sizeOfGiftTemp = GiftTemp.size()+1
#prints very element in the stack and put the elements in GiftTemp
for i in range(1, size):
GiftTemp.push(Gift.pop())
print(str(i) + " - " + GiftTemp.peek())
#transfer elements from giftTemp to gift
for i in range(1, sizeOfGiftTemp):
Gift.push(GiftTemp.pop())
print("")
print("You will get one of these gifts below.")
答案 0 :(得分:0)
您只需要访问堆栈中的容器(常规列表)即可。像这样……
Gift.container[randint(0,len(Gift.container))]
或这样……
for i in Gift.container:
print(i)
如果要获得多个元素,请使用“切片”。除了它是类,其成员名为container
之外,“ Stack”确实没有什么特别的。