Python列表操作——模拟实现栈和队列
1.实现栈:
stack=[] def pushit(): stack.append(raw_input('Enter New String:').strip()) def popit(): if len(stack)==0: print 'can not pop anything from a empty stack' else: print 'Remove[',repr(stack.pop()),']' def viewstack(): print stack CMDs={'u':pushit,'o':popit,'v':viewstack} def showmenu(): pr=""" p(U)sh p(O)p (V)iew (Q)uit Enter choice:""" while True: while True: try: choice=raw_input(pr).strip().lower() except (EOFError,KeyboardInterrupt,IndexError): choice='q' print '\nYou picked:[%s]' %choice if choice not in 'uovq': print'Invaild option,try again' else: break if choice=='q': break CMDs[choice]() if __name__=='__main__': showmenu()
2.实现队列
queue=[] def enQ(): queue.append(raw_input('Please enter a new element:').strip()) def deQ(): if len(queue)==0: print "Error: cannot pop anything from a empty queue" else: print 'Remove [',queue.pop(0),']' def viewshow(): print queue CMDs={'e':enQ,'d':deQ,'v':viewshow} def showmenu(): pr=''' (E)nQ (D)eQ (V)iewshow (Q)uit Enter your choice: ''' while True: while True: try: choice=raw_input(pr).strip()[0].lower() except (EOFError,KeyboardInterrupt,IndexError): choice='q' print 'You picked [%s]' % choice if choice not in 'edvq': print 'Invail option, Try again' else: break if choice=='q': break CMDs[choice]() if __name__=='__main__': showmenu()