(Python)在python中使用pop来获取第一个元素,然后将其放在列表的底部

时间:2017-08-08 17:05:25

标签: python stack pop

我是python的新手,我不知道是否可以旋转我的堆栈结构。

我的代码:

class Stack():    
    def __init__(self):
       self.items = []
    def isEmpty(self):
       return self.items == []
    def push(self, item):
       return self.items.append(item)
    def printstack(self):
       for items in reversed(self.items):
           print items
    def pop(self):
       NS=Stack()
       var1=self.items.pop()
       NS.push(var1)    
       NS.push(self)
       self=NS
       return var1

    def size(self):
       return len(self.items)
s=Stack()  
print s.isEmpty()   
print ''  
s.push(4)  
s.push('dog')   
s.push(6)  
s.push('Bob')  
print s.isEmpty()  
print ''  
s.printstack()  
print ''  
print s.pop()  
print ''  
s.printstack()  

我要做的是自定义堆栈中的弹出以弹出并将pope变量放在堆栈的末尾,如下所示:

True

False

Bob  
6  
dog  
4  

Bob  

6  
dog  
4  
Bob  

但是我得到了这个:

True

False

Bob  
6  
dog  
4  

Bob  

6  
dog  
4  

帮助?

1 个答案:

答案 0 :(得分:3)

pop在数据结构中已经具有独特的含义;如果你改变了操作,你以后会遇到通讯问题。相反,将操作命名为:rotate

由于底层结构只是一个列表,因此您可以使用切片轻松完成此操作:

items = items[1:] + [items[0]]

评论后更新

我不确定你将如何需要一个for循环。 Python有许多方便的内置操作和方法来避免这种困难。如果您对了解更多数据结构感到满意,请务必采用 Aaron 建议并了解集合包。有字典,包括计数器和排序属性,链接列表类型的序列,以及许多良好的支持功能。