列表有容器和可變的特性,這使得它非常靈活,可以用它來構建其他的資料結構如堆疊。
1.堆疊
堆疊是乙個後進先出(lifo)的資料結構,其工作方式就像自助餐廳裡面用於放盤子的彈簧支架。把盤子想像成物件,第乙個離開堆疊的是最後放上的那個。「push」經常表示的把乙個物件壓入堆疊中,「pop」則是將堆疊最上面的元素彈出(移除)。其示意圖:
2.函式3.程式
#用列表來模擬堆疊-用於儲存和取回輸入的字串
stack =
defpush_stack
():def
pop_stack
():if len(stack) == 0:
print('cannot pop from an empty stack!')
else:
print('remove [',stack.pop(),']')
defviewstack
(): print(stack)
cmds = #
defshowmenu
(): pr = """
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: """
while
true:
while
true:
try:
choice = 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
if choice == 'q':
break
cmds[choice]()
showmenu()
4.結果
***************==== restart: d:/pythonspace/d6_04_stack.py ***************====
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: u
you picked: [u]
enter new sring:kyrie
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: v
you picked: [v]
['kyrie']
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: u
you picked: [u]
enter new sring:is
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: u
you picked: [u]
enter new sring:mvp
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: v
you picked: [v]
['kyrie', 'is', 'mvp']
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: o
you picked: [o]
remove [ mvp ]
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: v
you picked: [v]
['kyrie', 'is']
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: o
you picked: [o]
remove [ is ]
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: v
you picked: [v]
['kyrie']
p(u)sh
p(o)p
(v)iew
(q)uit
enter choice: q
you picked: [q]
Python 3 7 列表 list 學習
列表 list 是 python 中常用的序列,它是 python 的主力序列,它是可修改的。定義列表list1 list2 hello python list3 hello python 2020 python 是完全動態資料型別,同乙個列表元素型別可以是多種的 print list2 hello...
Python3 7安裝部署
教你如何在 centos 7 下編譯安裝 python 3.7 與 python 2.7.5 共存。環境 centos 7.6 x64 一 安裝python 3.7 wget 如果沒有wget命令,可以使用命令安裝 yum y install wget 安裝依賴包,避免安裝過程 現的 zipimpo...
linux環境安裝python3 7
我用的是linux centos 6 1 首先安裝依賴包,確認gcc是否安裝,可以用檢視 gcc version 2.如果沒有則進行安裝,需要sudo許可權 yum y install gcc 3.安裝其他依賴包 可以不安裝,但是可能會安裝過程中報錯 yum y install zlib devel...