Heim >Backend-Entwicklung >Python-Tutorial >Beispielcode für einen Python-Datenstruktur-Stack
Python-Stack
Der Stack ist eine Last-In-First-Out-Datenstruktur (LIFO). Die Stack-Datenstruktur kann zur Verarbeitung der meisten Programmabläufe mit LIFO-Eigenschaften verwendet werden , push und pop sind gebräuchliche Begriffe:
stack = [] # 初始化一个列表数据类型对象, 作为一个栈 def pushit(): # 定义一个入栈方法 stack.append(raw_input('Enter New String: ').strip()) # 提示输入一个入栈的 String 对象, 调用 Str.strip() 保证输入的 String 值不包含多余的空格 def popit(): # 定义一个出栈方法 if len(stack) == 0: print "Cannot pop from an empty stack!" else: print 'Remove [', `stack.pop()`, ']' # 使用反单引号(` `)来代替 repr(), 把 String 的值用引号扩起来, 而不仅显示 String 的值 def viewstack(): # 定义一个显示堆栈中的内容的方法 print stack CMDs = {'u':pushit, 'o':popit, 'v':viewstack} # 定义一个 Dict 类型对象, 将字符映射到相应的 function .可以通过输入字符来执行相应的操作 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()[0].lower() # Str.strip() 去除 String 对象前后的多余空格 # Str.lower() 将多有输入转化为小写, 便于后期的统一判断 # 输入 ^D(EOF, 产生一个 EOFError 异常) # 输入 ^C(中断退出, 产生一个 keyboardInterrupt 异常) except (EOFError, KeyboardInterrupt, IndexError): choice = 'q' print '\nYou picked: [%s]' % choice if choice not in 'uovq': print 'Invalid option, try again' else: break if choice == 'q': break CMDs[choice]() # 获取 Dict 中字符对应的 functionName, 实现函数调用 if __name__ == '__main__': showmenu()HINWEIS: In der Stapeldatenstruktur werden hauptsächlich die Container- und Veränderlichkeitsfunktionen des List-Datentypobjekts verwendet, die sich in List.append( widerspiegeln) ) und List.pop()-Aufrufe dieser beiden integrierten Funktionen vom Listentyp Vielen Dank fürs Lesen, ich hoffe, es kann allen helfen, vielen Dank für Ihre Unterstützung dieser Website! Weitere Artikel zum Beispielcode für den Python-Datenstrukturstapel finden Sie auf der chinesischen PHP-Website!