Stack in Python: qeexitaan, hirgelin iyo tusaalooyin

Cusbooneysiintii ugu dambeysay: 02/04/2026
  • Qaybaha Python waxay raacaan qaabka ugu dambeeya ee "Last-In", "First-Out", oo leh hawlgallo asaasi ah sida riix, pop, peek, size iyo jeegag madhan.
  • Qalabka Python stacks waxaa lagu hirgelin karaa liisaska, collections.deque, queue.LifoQueue ama liisas gaar ah oo isku xiran, mid walbana leh is-weydaarsiyo kala duwan.
  • Liisaska iyo deques-ku waxay ku habboon yihiin koodhka hal-weji leh, halka queue.LifoQueue ay tahay doorashada ugu ammaansan ee jawiyada badan-weji leh.
  • Doorashada hirgelinta saxda ah waxay ku xiran tahay baahiyaha waxqabadka, dhaqanka xusuusta iyo in loo baahan yahay badbaadada dunta.

Qaab-dhismeedka xogta Python stack

Xirmooyinka Python waa mid ka mid ah fikradaha asaasiga ah ee soo baxaya meel walba marka aad bilowdo inaad ka raadiso barnaamijyada dhabta ah. - laga bilaabo wicitaanada shaqada, ilaa tirtirka sifooyinka tifaftireyaasha, ilaa sida biraawsarradu u maareeyaan taariikhdaada navigation-ka. Xitaa haddii aad inta badan qorto koodka codsiga heerka sare ah, fahamka sida is dulsaarku u shaqeeyaan (iyo sida si habboon loogu hirgeliyo Python) waxay ku siinaysaa faa'iido weyn marka aad u baahato inaad saxdo arrimaha adag ama aad naqshadayso algorithms-ka hufan.

Tilmaamahan waxaan ku kala saari doonnaa waxa stack yahay, waxa "Last In, First Out" dhab ahaantii macnaheedu yahay ficil ahaan, hawlgallada stack kasta uu taageeri karo, iyo sida loo hirgeliyo stacks Python iyadoo la adeegsanayo qalab kala duwan sida liisaska, collections.deque, queue.LifoQueue iyo liisaska si gooni gooni ah isugu xiran.Waxaan sidoo kale ka hadli doonnaa waxqabadka, dhaqanka xusuusta, badbaadada dunta iyo xaaladaha dhabta ah halkaas oo ururintu ay tahay qaab-dhismeedka xogta saxda ah ee la gaari karo.

Waa maxay isku-darka Python?

Stack waa qaab-dhismeed xog toosan oo raacaya qaanuunka Ugu Dambeeya ee Soo Gala, Marka Hore Loo Bixiyo (LIFO): curiyaha ugu dambeeya ee aad ku riixdo stack-ka waa kan ugu horreeya ee soo noqda.Fikrad ahaan, waxaad qiyaasi kartaa tiro saxanno ah, tuulmo buugaag ah, ama tiro dhar ah: waxaad ku dari kartaa ama ka saari kartaa oo keliya alaabta dusha sare, ee ma aha bartamaha ama hoose.

Dhaqankan LIFO wuxuu ka dhigan yahay marka aad geliso (riix) walxaha, curiye kasta oo cusub wuxuu ku fadhiyaa kuwa hore, marka aad ka saarto (soo rogto), waxaad had iyo jeer qaadataa curiyaha ugu dambeeyay ee lagu daray.Weligaa "hor u bood" si aad u gaarto curiyaha saddexaad ama afraad adigoon ka saarin kuwa ka sarreeya.

Python, stack ma aha nooc magac ku dhisan oo keligiis ah; taa beddelkeeda, waxaan ku hirgelinnaa stacks dusha sare ee qaab-dhismeedka xogta ee jira sida liisaska, deques, safka LIFO ama liisaska isku xiran ee gaarka ah.Ikhtiyaar kastaa wuxuu leeyahay is-weydaarsi u gaar ah marka la eego waxqabadka, isticmaalka xusuusta iyo badbaadada dunta.

Labada hawlgal ee aasaasiga ah ee ku jira xidhmo kasta waa riix iyo bood, laakiin hirgelinta wax ku oolka ah waxay inta badan soo bandhigtaa dhowr caawimo oo dheeraad ah sida peek (ama sare), cabbirka iyo jeegag madhan.Hawlgalladan dheeraadka ah waxay ka dhigayaan isticmaalka xirmooyinka barnaamijyada dhabta ah mid aad u sahlan.

Kahor intaadan gelin koodhka, maskaxda ku hay sifada muhiimka ah: stack si fiican loo hirgeliyay wuxuu sameyn doonaa hawlgallo riixitaan iyo boodbood ah waqti joogto ah, oo loo yaqaan O(1), iyadoon loo eegin inta walxood ee la keydiyay.Waxqabadka la saadaalin karo waa mid ka mid ah sababaha ugu waaweyn ee loo isticmaalo istuudiyooyinka si aad ah loogu isticmaalo algorithms-ka iyo nidaamyada heerka hoose.

Fikradda ku jirta Python ee Stack

Hawlgallada xidhmooyinka asaasiga ah iyo dhaqanka

Qalab kasta oo la isticmaali karo oo ku jira Python, iyada oo aan loo eegin hirgelinta hoose, wuxuu ku wareegsan yahay dhowr hawlgal oo caadi ah oo qeexaya dhaqankiisaFahmidda kuwan aad bay uga muhiimsan tahay xifdinta magacyada hababka gaarka ah ee maktabad kasta.

Hawlgalka caadiga ah ee lagu gelinayo curiye waxaa loo yaqaan riix: waxaad qaadataa qiime oo waxaad dul saartaa kaydka jiraKa dib riixitaan, curiyaha cusub wuxuu noqonayaa kan marka hore lagu soo celin doono hawlgalka soo socda ee pop-ka.

Si aan u saarno walxaha waxaan isticmaalnaa pop, kaas oo ka qaada shayga ugu sarreeya ee kaydka oo soo celiya.Haddii xidhmadu madhan tahay, hirgelin adag waa inay keentaa khalad ama soo celisaa qiime gaar ah oo si cad u tilmaamaya maqnaanshaha curiyayaasha.

Inta badan hirgelinta tirakoobka ayaa sidoo kale soo bandhigaysa muuqaal ama hawlgal sare, kaas oo kuu oggolaanaya inaad eegto qaybta hadda ku taal xagga sare adigoon ka saarin tirakoobkaTani waxay si gaar ah ugu habboon tahay algorithms-ka u baahan in la baaro qiimaha xiga laakiin weli doonaya inay halkaas ku hayaan muddo dambe.

Laba hawlgal oo kale oo caawinaad ah oo aad inta badan ka heli doonto waa ismadhan (ama isEmpty) iyo cabbirka, kuwaas oo hubiya in xidhmadu ay leedahay wax curiye ah iyo inta curiye ee ay ka kooban tahayPython, hubinta len() ee ku dhex jirta iyo kuwa boolean labadaba waxaa dib loogu isticmaali karaa gudaha si loogu hirgeliyo caawiyayaashan iyadoo la adeegsanayo kood yar.

Marka la eego kakanaanta waqtiga, tiirar si habboon loo qaabeeyey ayaa dammaanad qaadaya in riix, bood, peek iyo isEmpty dhammaantood ay ku shaqeeyaan waqti joogto ah O(1), cabbirkuna wuxuu noqon karaa O(1) ama O(n) iyadoo ku xiran haddii hirgelintu ay dhererka u kaydiso goob gaar ah.Muhiimad ahaan, isdulsaarku ma taageeraan marin u helitaan wax ku ool ah oo aan kala sooc lahayn oo loogu talagalay jagooyinka aan kala sooca lahayn sida safafka oo kale.

Goorta iyo sababta loo isticmaalo qalab isku xiran

Qaybaha ayaa iftiimaya marka aad la macaamilayso habab aad hadhow u baahan doonto inaad "dib u celiso" ama aad u marto habka saxda ah ee tallaabooyinka la qaaday.Xaalad kasta oo aad si dabiici ah u malaynayso "Waxaan u baahanahay inaan tan ka beddelo tan ugu dambeysa ilaa tan ugu horreysa" waa musharrax xooggan oo loogu talagalay isku-darka.

Tusaalooyinka dhabta ah ee caadiga ah waa kala furfuridda mashiinka: waxaad ka saartaa boolal iyo qaybo si nidaamsan, haddii aad rabto inaad si sax ah dib ugu soo celiso, waa inaad dib ugu celisaa si toos ah nidaamka ka soo horjeeda.Ku kaydinta qaybahan meel ku urursan waxay si fiican ugu habboon tahay habka shaqada.

Barnaamijyada, mid ka mid ah isticmaalka aasaasiga ah ee stacks waa function call stack: mar kasta oo function uu waco function kale, parameters, doorsoomayaasha maxalliga ah iyo cinwaanada soo celinta waxaa lagu riixaa stack in memory.Marka shaqadu soo noqoto, qaab-dhismeedkeedu waa soo boodaa, taasoo soo celinaysa xaaladda qofka soo wacaya.

Ka noqo oo dib u samee farsamooyinka tifaftirayaasha qoraalka, qalabka sawirka, IDE-yada iyo codsiyo kale oo badan ayaa badanaa ku tiirsan tiro ficillo ah ama xaaladoFicil kasta oo isticmaale ah waxaa loo riixaa in la tirtiro; marka aad riixdo Ctrl+Z, barnaamijku wuxuu soo saaraa ficilkii ugu dambeeyay wuxuuna dib u celiyaa.

Stacks-ka waxaa sidoo kale si weyn loogu isticmaalaa algorithms-ka sida raadinta qoto dheer (DFS) ee garaafyada, qiimeynta muujinta (falanqaynta qaansooyinka, hawl wadeennada iyo hawlgallada), dib-u-raadinta, iyo hirgelinta taariikhda biraawsarka halkaas oo bog kasta oo la booqday la riixo oo "Dib" uu soo baxo kan ugu dambeeya.Xaaladahan waxay ka faa'iidaystaan ​​​​dhaqdhaqaaqa dabiiciga ah ee LIFO oo la xiriira xudunta macquulka barnaamijka.

Hirgelinta stack oo leh liisaska Python

Habka ugu fudud ee lagu dhisi karo stack Python waa in la isticmaalo nooca liiska ku dhex jira, iyadoo laga faa'iideysanayo habka append() si loo riixo oo loo soo saaro() si looga saaro curiyaha ugu dambeeya.Liisaska waa taxane firfircoon oo hoos yimaada daboolka waxayna bixiyaan dhammaan hawlaha aasaasiga ah ee loo baahan yahay in la isticmaalo.

Stack yar oo ku salaysan liisaska ayaa laga yaabaa inuu bixiyo shaqooyin caawiye ah sida create_stack, riix, pop, isemty iyo show (ama top, size, iwm.), kuwaas oo dhammaantood si gudaha ah u maamula tusaalaha liiska Python ee caadiga ahTusaale ahaan, create_stack wuxuu soo celin karaa liis madhan, ismadhanna waxaa lagu qeexi karaa len(stack) == 0.

Hal qaab oo caadi ah ayaa ah in dhammaadka liiska loola dhaqmo sidii meesha ugu sarreysa ee xidhmada, sidaa darteed stack.append(item) wuxuu sameeyaa riix, stack.pop() wuxuu sameeyaa popTani waxay labada hawlgalba ka dhigaysaa waqti isku mid ah oo joogto ah, koodkuna wuxuu ahaanayaa mid aad loo akhrin karo oo gaaban.

Haddii aad doorbidayso kood habaysan, waxaad ku duubi kartaa dhaqankan fasal Stack gaar ah oo soo koobaya liiska oo soo bandhigaya habab cad sida push(), pop(), peek(), is_empty() iyo size()Ku-xidhka ayaa sahlaya in la dheereeyo xidhmada iyadoo la hubinayo ama la diiwaan gelinayo goor dambe.

Liisaska waa kuwo si xad dhaaf ah u shaqeeya xusuusta sababtoo ah walax kastaa si toos ah ayay u kaydisaa qiimaheeda iyada oo aan la saarin tilmaame u socda node xiga, sida aad ku arki lahayd liiska isku xiran.Intaa waxaa dheer, horumariyayaal badan oo Python ah ayaa durba aad ugu qanacsan macnaha liiska, taasoo ka dhigaysa habkan mid fudud in la baro oo la ilaaliyo.

Si kastaba ha ahaatee, waxaa jira digniin muhiim ah: liisaska waxaa taageeraya xusuusta isku xiran, marka marka ay ka baxaan booska la keydiyay, Python waa inay qoondeysaa baloog cusub oo ka weyn oo ay nuqul ka sameysataa walxaha kor ku xusanInta badan waqtigan dib-u-dejintan waa mid aan la saadaalin karin oo aan la arki karin, laakiin mararka qaarkood hal lifaaq() ayaa laga yaabaa inuu si la dareemi karo uga gaabiyo kuwa kale.

Dhinac kale ayaa ah in liisaska Python aysan ahayn kuwo aan lahayn wax-ka-beddello isku mar ah oo ka imanaya mawduucyo badan, taas oo noqon karta arrin haddii aad rabto inaad isticmaasho xidhmo barnaamijyada badan-weji badan lehXaaladahaas, waa inaad tixgelisaa beddelka sida queue.LifoQueue halkii aad ka tixgelin lahayd liisaska caadiga ah.

Adeegsiga ururinta ururinta (collections.deque) oo ah qalab loogu talagalay ururinta xogta

Qaybta ururinta Python waxay bixisaa safka laba-geesoodka ah (saf laba-geesood ah), kaas oo inta badan ka habboon liisaska marka aad u baahan tahay hawlgallo riixitaan iyo boodbood oo soo noqnoqda.Deque waxaa loo habeeyey in lagu dhejiyo si dhakhso ah oo ka soo baxa labada daraf.

Markaad u isticmaaleyso deque sidii xidhmo, waxaad caadiyan ku riixdaa shayada adoo adeegsanaya habka append() oo aad ka saartaa pop(), adigoo ula dhaqmaya dhammaadka midig sidii qaybta sare ee xidhmadaGudaha, deque waxaa loo hirgeliyaa sidii liis laba-laaban oo isku xiran oo baloogyo ah, iyadoo laga fogaanayo dib-u-dejinta ballaaran ee liisaska marmar u baahan.

Abuuritaanka stack adoo isticmaalaya deque waa mid fudud: call deque() si aad u hesho weel madhan, ka dibna qeex hawlgallada sida push(stack, item) ee call stack.append(item) iyo pop(stack) oo hubiya in stack uusan madhnayn ka dibna call stack.pop()Caawiyayaal dheeraad ah sida show(stack) si fudud ayay u daabici karaan macluumaadka hadda jira.

Maadaama deque si gaar ah loogu habeeyay gelinta iyo tirtirka hufan ee labada dhinacba, hawlgallada riixitaanka iyo boodboodku waxay ilaaliyaan waxqabadka O(1) ee joogtada ah xitaa marka qaab-dhismeedku korayoTani waxay ka dhigi kartaa deques-ka mid ka doorbid badan liisaska loogu talagalay raasamaalka waaweyn ama kuwa aadka loo isticmaalo.

Koodhka hal-weji leh, deque badanaa waa mid ka mid ah xulashooyinka caadiga ah ee ugu fiican ee lagu hirgelinayo xirmooyinka Python, maadaama ay isku darayso waxqabad wanaagsan, API nadiif ah iyo wax la yaab leh oo ku saabsan xaddidaadaha awoodda.Waxay sidoo kale si saadaalin leh u dhaqantaa marka la eego waqtiga marka ururku aad u weynaado.

Hirgelinta isdulsaarista safka.LifoQueue

Marka badbaadada duntu ay muhiim noqoto, fasalka LifoQueue ee module-ka safka ayaa ah ikhtiyaarka ugu habboon ee lagu hirgelin karo isku-darka Python.LifoQueue asal ahaan waa xidhmo aan dun lahayn oo leh farsamooyin quful oo ku dhex jira.

Si aad u abuurto stack cusub oo ku salaysan LifoQueue, waxaad ku soo dejisan kartaa LifoQueue iyadoo la adeegsanayo halbeeg cabbir sare oo ikhtiyaari ah, kaas oo matalaya tirada ugu badan ee walxaha ay stack-ku qaban karto.Gudaha, safka wuxuu qaban doonaa sugitaanka, xannibaadda iyo calaamadaynta dunta oo dhan haddii xidhmadu ay buuxsanto ama madhan tahay.

Ku riixista walax dul saaran xidhmada LifoQueue waxaa lagu sameeyaa put(item), kaas oo xannibi kara haddii xidhmadu ay horeba u gaadhay awooddeeda ugu badan.. Qaybaha boodboodaya waxay isticmaalaan get(), kaas oo sidoo kale xannibi kara haddii xidhmadu madhan tahay ilaa shay cusub la heli karo.

Hababka caawinta dheeraadka ah sida qsize(), full() iyo madhan() waxay kuu oggolaanayaan inaad si badbaado leh u baarto xaaladda hadda ee xidhmada.Tusaale ahaan, full() waxay kuu sheegaysaa haddii aan la dari karin curiyeyaal dheeraad ah, halka madhan() ay tilmaamayso in ay jiraan wax la soo saari karo iyo in kale.

Is-weydaarsiga ugu weyn marka la isticmaalayo LifoQueue waa waxqabadka: dhammaan isku-dubaridka loo baahan yahay si looga dhigo mid aan dun lahayn wuxuu soo bandhigayaa kharash dheeraad ah, taasoo ka dhigaysa hawlgallada kuwo ka gaabis badan kuwa ku jira liisaska ama deques-ka.Xaaladaha waxqabadka sare leh ee ku xiran CPU-ga, kharashkaas ayaa laga yaabaa inuu muhiim yahay, laakiin codsiyo badan oo badan oo dunta badan leh, badbaadada iyo saxnaanta ayaa aad muhiim u ah.

Waxaa xusid mudan in dunta Python aysan macnaheedu ahayn in duntu ay si toos ah ugu shaqeyn doonto xudunta CPU-ga ee kala duwan sababtoo ah Global Interpreter Lock (GIL), laakiin LifoQueue wali waxay ka ilaalisaa dulka aad wadaagtaan xaaladaha jinsiyadda iyo xaaladda aan iswaafaqsanayn.Si aad u hesho isbarbardhig dhab ah oo ku saabsan xudunta, waxaad u baahan doontaa habab badan oo wax lagu farsameeyo ama habab kale, haddana fikradda ah isku-darka badbaadada dunta ayaa weli khuseysa culayska shaqada ee ku xiran I/O ama iskaashiga.

Hirgelinta isku-darka iyadoo la adeegsanayo liis keli ah oo isku xiran

Hab cusub oo sayniska kombiyuutarka ah oo "caadiga ah" oo lagu dhisi karo Python waa in la isticmaalo liis isku xiran, halkaas oo qanjidh kastaa uu kaydiyo qiimo iyo tilmaame (tixraac) qanjidhka xiga.Habkani wuxuu ku siinayaa tiro cabbir ahaan firfircoon oo aan ku tiirsanayn xusuusta isku xiran.

Caadi ahaan waxaad qeexdaa fasalka Node oo leh sifooyin loogu talagalay qiimaha iyo tixraaca xiga, ka dibna waxaad hirgelisaa fasalka Stack kaas oo la socda node madaxa iyo miis cabbir ahBadanaa, god madax ah oo been abuur ah ayaa loo isticmaalaa in lagu fududeeyo kiisaska geesaha marka is dulsaarku madhan yahay.

Naqshaddan, qaybta sare ee xidhmada waxaa matalaya qanjidhka isla markiiba ka dib madaxaSi aad u riixdo qiime, waxaad abuurtaa node cusub, waxaad dejisaa tixraaca xiga ee head.next-ka hadda jira ka dibna cusbooneysii head.next si aad u tilmaanto node-ka cusub, adigoo kordhinaya cabbirka intaad socoto.

Soo saarista walax waxay ku lug leedahay hubinta haddii is dulsaarku madhan yahay, ka dibna qaadashada qanjidhka madaxa. xiga waxay tilmaamaysaa, dhaqaajinta madaxa. dhinaca qanjidhka soo socda, yaraynta cabbirka iyo soo celinta qiimaha la saarayHawlgalkani wuxuu leeyahay waqti adag oo joogto ah sababtoo ah waxaa loo baahan yahay oo keliya dhowr cusbooneysiin tilmaameed.

Hababka dheeraadka ah sida getSize(), isEmpty() iyo peek() way fududahay in lagu hirgeliyo qaab-dhismeedkan: cabbirka waxaa loo raadraacaa sidii tiro ahaan, isEmpty wuxuu hubin karaa in cabbirku eber yahay, peek-na wuxuu soo celiyaa head.next.value haddii xidhmadu aanay madhnaynWaxaad sidoo kale qeexi kartaa habka __str__ si aad u soo saarto xarig la akhrin karo oo leh dhammaan walxaha isku-darka.

Faa'iidooyinka isku-xidhka liiska ku salaysan waxaa ka mid ah kobaca firfircoon iyada oo aan lahayn dib-u-dejin iyo waxqabadka O(1) ee la saadaalin karo ee riixitaanka iyo soo-boodka xitaa marka qaab-dhismeedku weynaado.Xusuusta waxaa loo qoondeeyaa qanjidh iyadoo loo eegayo qanjidh, taas oo faa'iido u yeelan karta nidaamyada leh xusuusta kala qaybsan.

Khasaaraha ayaa ah kharash dheeraad ah oo loogu talagalay xusuusta tilmaamaha (nooc kasta wuxuu kaydiyaa ugu yaraan hal tixraac) iyo kood aad u badan oo adag marka la barbar dhigo liisaska ama deques-ka.Barnaamijyo badan oo Python ah oo maalinle ah, kharashyadaasi uma qalmaan faa'iidooyinka, laakiin farsamooyinku waxay weli yihiin kuwo qiimo leh in la fahmo waxayna ku habboon yihiin xaalado gaar ah oo heer hoose ah ama waxbarasho.

Sifooyinka, waxtarka iyo xaddidaadaha xidhmooyinka

Fikrad ahaan, is dulsaarku wuxuu u dhaqmaa sida tuulmo walxo ah oo meesha sare oo keliya laga heli karo: waxaad had iyo jeer la falgashaa curiyaha ugu dambeeyay ee lagu daray marka hore.Xaddidaaddani waxay siinaysaa awooddooda iyo xaddidaadahooda labadaba.

Marka si habboon loo hirgeliyo, akhrinta qaybta sare, gelinta mid cusub, iyo ka saarista dusha sare dhammaantood waa hawlgallo waqti-joog ah O(1) ahWaxqabadka joogtada ah aad ayuu waxtar u leeyahay marka aad naqshadeynayso algorithms-ka kuwaas oo u baahan kara inay riixaan oo soo saaraan kumanaan ama malaayiin jeer.

Xaddidaad muhiim ah ayaa ah inaadan si wax ku ool ah u gaari karin walxo aan kala sooc lahayn oo ku jira bartamaha rasmada adigoon wax kasta oo ka sarreeya soo saarinHaddii aad si joogto ah u aragto inaad u baahan tahay marin u helid aan kala sooc lahayn, qaab-dhismeed xog oo ka duwan (sida liis loo isticmaalo qaab u eg safka) ayaa laga yaabaa inuu ku habboon yahay.

Isticmaalka xusuusta iyo qaababka qoondaynta waxay si weyn ugu xiran yihiin hirgelinta la doortay: taxane (liis) waxay isticmaalaan xusuusta isku xiran mararka qaarkoodna waxay u baahan karaan in dib loo habeeyo, waxay maamulaan baloogyada xusuusta si looga fogaado nuqullo waaweyn, iyo liisaska isku xiran waxay ku faafaan qanjidhada meelaha xusuusta ee la heli karoHab kastaa wuxuu si kala duwan u kala beddelaa dhaqanka sare, deegaanka iyo kartida.

Marka laga eego dhinaca naqshadeynta, is dulsaarku si ula kac ah ayuu u fudud yahay: dusha sare oo keliya ayaa la arki karaa, mana jirto fikrad ah in la tusmeeyo ama la geliyo bartamaha.Fududeyntani waxay yareysaa fursadda si xun u isticmaalka daroogada waxayna dhiirrigelisaa koodka si cad u qaabeeya socodka shaqada LIFO.

Tixgelinta Python iyo tixgelinta isku-xidhka dunta

Marka barnaamijkaaga Python uu hal-weji yahay, waxaad si badbaado leh u kala dooran kartaa liisaska iyo deques-ka si aad u hirgeliso stacks iyadoo lagu saleynayo waxqabadka iyo sahlanaanta.Labaduba waxay bixiyaan awoodo riixitaan iyo soo jiidasho ah waana ay fududahay in lagu daro koodka caadiga ah.

Marka aad soo bandhigto mawduucyo badan oo wadaaga xidhmo, waxyaaluhu way sii jilicsanaan doonaan: hawlgallada u muuqda kuwa atomiga ah ee heerka Python waxay isku dhex geli karaan siyaabo aan la filayn, iyagoo kharribaya xaaladda gudahaLiisaska iyo qaybaha aan la beddeli karin looma qorsheyn inay si buuxda u badbaadaan marka loo isticmaalo sidii is dulsaarro la wadaago.

Deques-ku waa ammaan haddii aad aad u anshax badan tahay oo aad naftaada ku xaddiddo inaad isticmaasho oo keliya append() iyo pop() oo ka yimid hal dhinac si taxaddar leh loo xakameeyey.Si kastaba ha ahaatee, xitaa markaas, arrimo qarsoon iyo xaalado jinsiyadeed ayaa soo bixi kara haddii mawduucyo badan ay isla akhriyaan oo ay qoraan isku mar iyada oo aan la isku waafajin dibadda.

Si aad u hesho xaalado adag oo badan oo dun ah oo dhowr dun ay isku mar riixi karaan oo ay isku mar soo bixi karaan, safka.LifoQueue waa hirgelinta isku-darka ee lagu taliyay.Qufulada ku dhex jira iyo macnaha xannibaya waxay hubinayaan in marin u helidda isku mar aysan kharribin kaydka.

Dabcan, is-weydaarsiga ayaa ah in hawlgallada LifoQueue (put and get) ay ka gaabis badan yihiin liiska cayriin ama hababka deque sababtoo ah isku-dubaridka dheeraadka ah ee u dhexeeya mowduucyadaIn kharashaadkaasi ay muhiim yihiin waxay ku xiran tahay shuruudaha waxqabadka ee codsigaaga iyo inta jeer ee la galo xidhmada.

Waxa kale oo mudan in maskaxda lagu hayo in qaabka dunta Python uu wali ku shaqeeyo Global Interpreter Lock, sidaa darteed xitaa haddii aad haysato xidhmo dunta ammaan ah si toos ah uma heli doontid isbarbardhigga CPU-ga ee ugu fiican hawlaha ku xiran CPU-ga.Si kastaba ha ahaatee, barnaamijyada ama naqshadaha ku xiran I/O ee ku tiirsan iswaafajinta halkii ay ka ahaan lahaayeen isbarbardhigga cayriin, xidhmo dunta ammaan ah ayaa ah baloog muhiim ah oo dhisma.

Doorashada hirgelinta Python stack ee saxda ah

Marka la eego dhammaan xulashooyinkan, hirgelinta "ugu fiican" ee Python waxay si weyn ugu xiran tahay macnaha guud: hal-weji vs maro badan, dareenka waxqabadka, dhaqanka xusuusta iyo caddeynta koodhka dhammaantood door bay ciyaaraan.Ma jiro hal doorasho oo ku habboon xaalad kasta.

Qoraallo fudud oo aan dun lahayn ama jawi waxbarasho, isticmaalka liis ahaan waa wax badan oo ku filan: append() iyo pop() waa kuwo dareen leh, dhaqso badan inta badan culayska shaqada, uma baahna ku dhawaad ​​​​kood boilerplate ah.Ujeeddooyin waxbarasho awgeed, liisaska ayaa sidoo kale sahlaya in la daabaco oo la baaro waxa ku jira.

Marka kaydkaaga si weyn loo isticmaalo, oo laga yaabo inuu kaydiyo walxo badan, oo aad rabto riixitaan/soo boodid joogto ah oo degdeg ah oo leh la yaab yar oo la xiriira dib u dejinta xusuusta, collections.deque waxay u egtahay inay tahay doorashada ugu waxtarka badan.API-geeda si dhow ayuu u liis gareeyaa, sidaa darteed socdaalku badanaa waa mid aan xanuun lahayn.

Haddii aad tan iyo bilowgii ogtahay in xidhmada laga heli doono mawduucyo badan, gaar ahaan iyadoo labada riixitaan iyo boodboodba ay isku mar dhacayaan, safka.LifoQueue waa ikhtiyaarka ugu ammaansan.Waxay noqon kartaa mid gaabis ah, laakiin waxay kaa badbaadinaysaa inaad hirgeliso hab-maamuuska qufulkaaga waxayna kaa caawinaysaa inaad ka fogaato xaaladaha tartanka ee adag.

Habka liiska isku xiran ayaa ku habboon marka aad rabto inaad sahamiso ama aad barato qaab-dhismeedka xogta gudaha, ama marka xaddidaadaha gaarka ah ay ka dhigayaan taxane ama deques kuwo aan soo jiidasho lahayn.Waxay sidoo kale ku siinaysaa xakameyn buuxda oo ku saabsan qaab-dhismeedka iyo dhaqanka qanjidhada, iyadoo ku kacaysa kood badan iyo kharash maskaxeed oo yar.

Hirgelin kasta oo aad doorato, fikradda hoose waxay ahaanaysaa isku mid: waxaad samaynaysaa qaab-dhismeed Dambe-Gel ah, oo ah qaab-dhismeed Koowaad-Ka-bax ah kaas oo walxaha isku dul kaydiya oo ku siinaya marin degdeg ah oo la saadaalin karo oo aad ku heli karto shayga ugu dambeeyay ee lagu darayMarka aad ku raaxaysato qaabkan, way kuu fududaanaysaa inaad ka fikirto algorithms-ka iyo dhaqamada nidaamka halkaas oo is dulsaarku ay yihiin kuwo dabiici ah.

Markaad fahamto sida ay u shaqeeyaan tiirarka, hawlgallada ay taageeraan, hirgelintooda Python ee caadiga ah iyo waxqabadkooda iyo is-weydaarsiga dunta, waxaad si kalsooni leh u dooran kartaa oo aad u hirgelin kartaa nooca ugu habboon baahiyaha mashruucaaga inta aad qorayso kood si hufan oo fudud loo fahmi karo waqti ka dib..

logica de programación para escribir mejor código
Maqaalka laxiriira:
Lógica de programación para escribir mejor código
Related posts: