python第三十二課——棧
阿新 • • 發佈:2019-03-01
取數 自定義函數 -- 元素 壓棧 tac 定義 color 引用
棧:滿足特點 --> 先進後出,類似於我們生活中的子彈夾
【註意】
對於棧結構而言:python中沒有為其封裝特定的函數,我們可以使用list(列表)來模擬棧的特點
使用list對象來模擬棧結構存取數據的特點:先進後出
# 定義一個列表對象,stack(變量名、引用名) stack=[] # 向棧中添加數據(模擬壓棧) stack.append(‘A‘) print(stack) stack.append(‘B‘) print(stack) stack.append(‘C‘) print(stack) # 將棧中的數據彈出(模擬彈出) obj=stack.pop()print(‘彈出:‘+obj) obj=stack.pop() print(‘彈出:‘+obj) obj=stack.pop() print(‘彈出:‘+obj)
模擬棧結構特點實現目錄遍歷之深度遍歷
import os #自定義函數:實現深度遍歷目錄層級的操作 def getAllFileST(path): #定義一個列表 lt=[] #將path(字符串、絕對路徑)壓棧 lt.append(path) #根據lt的長度來決定循環執行的次數 while len(lt)!=0: #將lt中的數據彈棧file_path=lt.pop() #得到file_path中的字內容(文件、子目錄)以列表的形式返回 file_list=os.listdir(file_path) #循環處理file_list for file in file_list: #將其中的每個元素還原成為絕對路徑值 fileAbsPath=os.path.join(file_path,file) ‘‘‘ 判斷是文件還是目錄? 如果是文件,直接打印其文件名即可 如果是目錄,先打印其目錄然後在將其壓棧‘‘‘ if os.path.isfile(fileAbsPath): print(‘文件:‘+file) else: print(‘目錄:‘+file) lt.append(fileAbsPath) p=r‘a.txt‘ getAllFileST(p)
python第三十二課——棧