Python实现栈的方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-06 11:17:53
オリジナル
1389 人が閲覧しました

本文实例讲述了Python实现栈的方法。分享给大家供大家参考。具体实现方法如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

#!/usr/bin/env python

#定义一个列表来模拟栈

stack = []

#进栈,调用列表的append()函数加到列表的末尾,strip()没有参数是去掉首尾的空格

def pushit():

  stack.append(raw_input('Enter new string: ').strip())

#出栈,用到了pop()函数

def popit():

  if len(stack) == 0:

    print 'Cannot pop from an empty stack!'

  else:

    print 'Removed [', stack.pop(), ']'

#编历栈

def viewstack():

  print stack

#CMDs是字典的使用

CMDs = {'u': pushit, 'o': popit, 'v': viewstack}

#pr为提示字符

def showmenu():

  pr = """

  p(U)sh

  p(O)p

  (V)iew

  (Q)uit

    Enter choice: """

  while True:

    while True:

      try:

        #先用strip()去掉空格,再把第一个字符转换成小写的

        choice = raw_input(pr).strip()[0].lower()

      except (EOFError, KeyboardInterrupt, IndexError):

        choice = 'q'

      print '\nYou picked: [%s]' % choice

      if choice not in 'uovq':

        print 'Invalid option, try again'

      else:

        break

#CMDs[]根据输入的choice从字典中对应相应的value,比如说输入u,从字典中得到value为pushit,执行pushit()进栈操作

    if choice == 'q':

      break

    CMDs[choice]()

#判断是否是从本文件进入,而不是被调用

if __name__ == '__main__':

  showmenu()

ログイン後にコピー

希望本文所述对大家的Python程序设计有所帮助。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート