Oglas

Niz in seznami so nekaj najbolj uporabnih struktur podatkov pri programiranju - čeprav jih le malo ljudi resnično izkorišča v celoti. Danes vas bom govoril skozi osnove, skupaj z nekaj preprostimi primeri Pythona.

Predpogoji

Vnaprej morate vedeti veliko, da se naučite teh konceptov. Osnovno znanje programskih paradigem in Pythona bo koristno, vendar ni potrebno. Preberite naše osnovni primeri Pythona 10 osnovnih Python-ovih primerov, s pomočjo katerih se boste hitro naučiliTa članek osnovnih primerov pythona je namenjen tistim, ki že imajo nekaj izkušenj s programiranjem in preprosto želijo čim hitreje preiti na Python. Preberi več če ne veste, kje začeti. Če menite, da je Python neuporaben jezik, poglejte naš razloge, zakaj ni 5 razlogov, zakaj programiranje Pythona ni neuporabnoPython - Ali ga imate radi ali ga sovražite. Morda celo nihate z enega konca na drugega kot nihalo. Ne glede na to je Python jezik, v katerem je težko biti ambivalenten. Preberi več .

Medtem ko se naslednje teme lahko uporabijo v katerem koli jeziku, bom pokazal primere v Pythonu. Jezik se je enostavno naučiti in nudi odlično platformo za razumevanje, kaj se dogaja. Poleg tega,

instagram viewer
tutorialspoint.com ponuja odličen spletni tolmač Python - sploh vam ni treba namestiti Python-a, če tega ne želite (če ga želite, oglejte naš vodič po virtualnih okoljih Preberite več o uporabi virtualnega okolja PythonNe glede na to, ali ste izkušen razvijalec Python-a ali šele začenjate, učenje o nastavitvi virtualnega okolja je ključnega pomena za vsak Python-ov projekt. Preberi več ).

Strukture podatkov

Kaj je a struktura podatkov? Na svoji osnovni ravni je podatkovna struktura način učinkovitega shranjevanja podatkov. Zmešati se je enostavno, ker podatkovne strukture niso vrste podatkov. Vrste podatkov povedo prevajalniku (ali v Pythonovem primeru tolmač), kako naj bodo podatki uporabljeni. Strukture podatkov določajo operacije, ki jih je mogoče izvesti, in pogosto izvajajo posebna pravila in predpise.

Morda ste že slišali za nekatere linearna podatkovni tipi (elementi so zaporedni):

  • Niz
  • Matrica
  • Tabela iskanja

Podobno, seznamih pogosto vsebujejo pravila in metode za uravnavanje njihovega delovanja. Nekaj ​​skupnih seznamov je:

  • Povezani seznam
  • Dvojno povezan seznam
  • Seznam matrikov ali dinamični niz

Obstaja množica različnih struktur podatkov. Morda ste že slišali binarna drevesa, grafovali hash. Danes se bom pogovarjal o osnovah, vendar boste morda želeli izvedeti več, ko vam bo prijetno.

Niz

Začnimo na začetku. Niz je preprosta zbirka (povezanih) vrednosti. Te vrednosti imenujemo elementi. Običajno so lahko poljubne vrste podatkov, vključno s predmeti ali drugimi seznami! Glavna opozorila z nizov je, da morajo biti vsi podatki enaki - ne morete shranjevati mešanih nizov in celih števil. Ti skoraj vedno morate določiti, koliko elementov želite shraniti. Spremenljiva velikost oz dinamični nizi obstajajo, vendar so matrike s fiksno dolžino preprostejše.

Python nekoliko zaplete stvari. Stvari vam zelo olajšajo, vendar se ne držijo vedno strogih definicij podatkovnih struktur. Večina predmetov v Pythonu je običajno seznamov, zato je ustvarjanje matrike dejansko več dela. Tu je nekaj začetne kode:

iz matrike uvoza matrike. številke = matrika ('i', [2, 4, 6, 8]) številke za tiskanje [0]

Prva vrstica uvaža matrika modul - potreben za delo z nizi. Druga vrstica ustvari nov niz imenovan številke in ga inicializira z vrednostmi 2, 4, 6 in 8. Vsakemu elementu je dodeljeno celo število vrednost, imenovana a ključ ali kazalo. Ključi se začnejo pri nič, torej številke [0] dostop do prvega elementa (2):

Niz Python

Morda se sprašujete, kaj je 'jaz' se uporablja za To je a typecode ki pove Python-u, da bo array shranil cela števila. Takšne stvari v Pythonu običajno ne bi bile potrebne (šteli bi jih za "nepitonične"). Razlog za to je preprost. Nizi v Python-u so zelo tanek ovoj na osnovnih nizih operacijskega sistema. To pomeni, da so hitri in stabilni, vendar se morda ne držijo vedno sintakse Python.

V teh nizih ni mogoče shraniti mešanih vrst. Recite, da želite shraniti niz “makeuseof.com”:

številke = matrika ('i', [2, 4, 6, "makeuseof.com"])

To ne bo dovoljeno in bo povzročilo izjemo:

Niz Python

Spodaj je opisano, kako lahko natisnete vse elemente:

številke za tiskanje
Niz Python

Ta način dostopa do elementov matrike deluje dobro in je kot nalašč za pravo nalogo. Kar ni dobro, je dostop do celotnega niza. Programerji so že sami po sebi leni, zato bom z veseljem napisal več, boljšo kodo, če to pomeni, da lahko olajšam vzdrževanje in zmanjšam trud kopiranja in lepljenja.

Vsak programski jezik bo izvedel nekakšno zanko, ki je popolna za iteracijo (zanko) nad elementi seznama. Najpogostejše so zanke medtem in za. Python olajša stvari še z zagotavljanjem za v zanka:

za številko v številkah: številka tiskanja

Opazite, kako vam ni bilo treba dostopati do elementov po njihovem ključu. To je veliko boljši način dela s matriko. Druga možnost ponovitve seznama je s tipko a za zanka:

za i v območju (len (številke)): številke za tiskanje [i]

To počne popolnoma enako kot prejšnji primer, čeprav ste morali določiti število elementov v matriki (len (avtomobili)), skupaj s mimo jaz kot ključ za matriko. To je skoraj točno koda, ki za v zanke tečejo. Ta način zagotavlja nekoliko večjo prožnost in je nekoliko hitrejši (čeprav za v zanke so več kot dovolj hitre, kot so večina takrat.)

Seznami

Zdaj, ko veste, kako delujejo matriki, poglejmo seznam. Včasih je lahko zmedeno, saj ljudje uporabljajo različno terminologijo zamenljivo in sezname so nizi… vrsta.

Seznam je posebna vrsta matrike. Največja razlika je v tem, da lahko seznami vsebujejo mešano vrste (ne pozabite, nizi morajo vsebovati elemente iste vrste). Seznami so v Pythonu zelo enostavni:

avtomobili = ['Ford', 'Austin', 'Lancia']

Opazite, kako vam ni treba uvoziti matrika modul?

Ta skladnja razglasi seznam z imenom avtomobili. Znotraj kvadratnih oklepajev je razglašen vsak element seznama. Vsak element je ločen z vejico, in ker je vsak element niz, jih deklarirate znotraj narekovajev. Python ve, da je to predmet, zato tisk bo izpisal vsebino seznama:

tiskalniki
Niz Python

Tako kot z matriko lahko tudi elemente seznama popravite s pomočjo zank:

za avto v avtomobilih: tiskalnik
Niz Python

Pravi partijski trik seznamov je njihov mešani tip. Nadaljujte in dodajte dodatne podatke:

avtomobili = ['Ford', 'Austin', 'Lancia', 1, 0,56]

Za Python to ni problem - sploh ni povzročil izjeme:

Niz Python

Na seznam je enostavno dodati nove elemente (nekaj ni mogoče z nizi):

avtomobili = ['Ford', 'Austin'] tiskalniki. avtomobili.append („Lancia“) tiskalniki
Niz Python

Dva seznama lahko združite tudi v enega:

avtomobili = ['Ford', 'Austin'] tiskalniki. other_cars = ['Lotus', 'Lancia'] cars.extend (other_cars) tiskalniki
Niz Python

Enostavno je odstraniti elemente s pomočjo Odstrani skladnja:

avtomobili = ['Ford', 'Austin', 'Lotus', 'Lancia'] tiskalniki. avtomobili.remove ('Ford') tiskalniki
Niz Python

Kar zadeva osnove seznamov in nizov v Pythonu. Zakaj ne bi razmislili o kodiranju projekta, kot je branje in pisanje v Google Preglednice Kako brati in pisati v Google Preglednice s Python-omPython se morda zdi nenavaden in nenavaden, vendar ga je enostavno naučiti in uporabljati. V tem članku vam bom prikazal, kako brati in pisati v Google Preglednice s pomočjo Pythona. Preberi več , branje podatkov json Kako pridobiti Python in JavaScript za komunikacijo z uporabo JSONDanes vam bom pokazal, kako uporabljati JSON za pošiljanje podatkov iz JavaScript na Python. Opisal bom, kako nastaviti spletni strežnik, skupaj z vso kodo, ki jo potrebujete. Preberi več . Mogoče bi lahko uporabili svoje nove veščine uporabe nekaterih gumbi za bližnjice po meri Naredite svoje lastne gumbe za bližnjice po meri z ArduinoSkromni Arduino lahko počne marsikaj, a ste vedeli, da lahko posnema USB tipkovnico? S tem preprostim vezjem lahko združite dolge bližnjice na tipkovnici. Preberi več . Kljub temu, da je drugačen programski jezik, ta matrična načela še vedno veljajo.

Ste se naučili česa novega? Bi radi videli kakšno bolj zapleteno vsebino? Sporočite nam vaše misli v spodnjih komentarjih!

Joe je diplomirani iz računalništva na Univerzi v Lincolnu v Veliki Britaniji. Je profesionalni razvijalec programske opreme, in ko ne leti dronov ali piše glasbe, ga lahko pogosto najdemo pri fotografiranju ali ustvarjanju videov.