如何在堆栈中打印多个随机元素/项目?

时间:2018-11-23 07:20:46

标签: python random

有人知道如何在堆栈中打印多个元素/项目吗?据我所知,要使用从列表中选择范围号就是使用范围,但是我该如何使用堆栈呢?我已经尝试过像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.")

1 个答案:

答案 0 :(得分:0)

您只需要访问堆栈中的容器(常规列表)即可。像这样……

Gift.container[randint(0,len(Gift.container))]

或这样……

for i in Gift.container:
    print(i)

如果要获得多个元素,请使用“切片”。除了它是类,其成员名为container之外,“ Stack”确实没有什么特别的。