在python編程中很多的數據計算都需要依靠列表來實現,比如Java編程中的堆棧結構/隊列結構也可以通過list列表實現的。
成都地區優秀IDC服務器托管提供商(成都創新互聯).為客戶提供專業的綿陽主機托管,四川各地服務器托管,綿陽主機托管、多線服務器托管.托管咨詢專線:13518219792
【閱讀全文】
1、將列表當做堆棧來使用
堆棧數據結構實現的思想就是:‘先進后出’,所以實現時需要保證先進來的數據最后出去,堆棧數據結構的一般在計算機的中綴表達式計算中應用場景比較多,因為計算機并不是簡單的根據我們理解的加減乘除來進行數據運算的。
這里寫了一個簡單的實現過程,其實list列表中已經有自帶的函數可以實現。
stack_ = [] # 初始化一個棧對象
'''
寫一個for循環向棧對象中添加數據元素
'''
for n in range(10):
stack_.append(n) # 向棧對象中添加數據元素
print(stack_) # 當前棧對象中的數據元素
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
'''
寫一個for循環來移除最后兩個棧頂數據元素
'''
for m in range(2):
stack_.pop() # 通過pop函數移除棧頂元素
print(stack_) # 當前棧對象中的數據元素
# [0, 1, 2, 3, 4, 5, 6, 7]
# 可以發現最后進來的兩個棧頂數據元素8、9被移除了出來
這樣就簡單實現了棧對象的過程達到‘先進后出’的效果,也就是‘后進先出’。
2、將列表當做隊列來使用
隊列數據結構實現的思想就是:‘先進先出’,將隊列元素按照排隊的方式依次加入到隊列數組中,先加入的數據元素最先出來,然后后面的數據元素再向前移動。
同樣的還是得通過list列表來實現,只是這次隊列的實現需要導入一個python到代碼塊中來輔助實現。
from collections import deque # 將隊列對象導入到代碼塊中
# 采用while循環的方式來進行數據的初始化
list_ = [] # 初始化一個list列表用于存放數據元素
k = 1 # 初始化k = 1,用于完成while循環
while k < 20: # 加入判斷條件,這里取19個元素
list_.append(k) # 向列表中添加數據元素
k = k + 1 # 循環元素遞增
print(list_) # 打印查看當前的lsit數據列表
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
# 生成了數據以后,然后將列表數據元素放到隊列對象中。
queue_ = deque(list_) # 初始化隊列對象
print(queue_) # 查看當前隊列數據元素
# deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
# 現在向隊列中添加數據元素
queue_.append(20) # 向隊列中添加元素20
queue_.append(21) # 向隊列中添加元素21
print(queue_) # 查看當前隊列數據元素
# deque([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21])
# 現在從隊列取出一個數據元素
queue_.popleft() # 從隊列的頭部取出數據元素
print(queue_) # 查看當前隊列數據元素
# deque([2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21])
這時候,看到隊列頭部的數據元素1已經被取出了。
【往期精彩】
該怎么用pyqt5來實現數據的增、刪、改、查功能...
介紹一個文本語音神器,幾行代碼就能搞定!
python批量自動整理文件
初學者福利:分享五個免費的 Python 學習網站,抓緊收藏吧!
有趣的控制臺玩法:一行代碼繪制控制臺圖像!
數據處理小工具:Excel 批量數據文件拆分/整合器...
辦公自動化:PDF文件合并器,將多個PDF文件進行合并...
GUI猜數字游戲,直接開玩...
手把手教你做一個數據圖表生成器(附源碼)...
動態指針時鐘:利用pyqt5制作指針鐘表顯示實時時間
python 日志中最亮的仔,是喜歡的花里胡哨吖...
哈撒給,英雄聯盟全皮膚下載器來了...
本文名稱:萬能的list列表,python中的堆棧、隊列實現全靠它!
網站網址:http://m.kartarina.com/article42/dsoghhc.html
成都網站建設公司_創新互聯,為您提供做網站、動態網站、ChatGPT、網站改版、云服務器、網站排名
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯