Heim >Backend-Entwicklung >Python-Tutorial >Beispielcode für einen Python-Datenstruktur-Stack

Beispielcode für einen Python-Datenstruktur-Stack

高洛峰
高洛峰Original
2017-02-07 13:02:021278Durchsuche

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:

push: bedeutet, ein Objekt auf den Stapel zu schieben

pop: bedeutet, ein Objekt aus dem Stapel zu schieben

Das Folgende ist Ein Beispiel für eine in Python implementierte einfache Stapelstruktur:

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn