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