Kako matrike in seznami delujejo v Pythonu

Kako matrike in seznami delujejo v Pythonu

Nizi in seznami so nekatere izmed najbolj uporabnih podatkovnih struktur pri programiranju - čeprav jih le malo ljudi resnično uporablja v celoti. Danes vam bom povedal nekaj osnov, skupaj z nekaj preprostimi primeri Pythona.





Predpogoji

Za učenje teh konceptov ni treba veliko vedeti vnaprej. Osnovno znanje o programskih paradigmah in Pythonu bo v pomoč, vendar ni potrebno. Preberite naše osnovni primeri Pythona če ne veste, kje začeti. Če menite, da je Python neuporaben jezik, preverite naše razloge, zakaj ni.





Medtem ko je naslednje temeljne ideje mogoče uporabiti za kateri koli jezik, bom predstavil primere v Pythonu. Je preprost jezik za učenje in ponuja odlično platformo za razumevanje dogajanja. Poleg tega, tutorialspoint.com ponuja odličnega spletnega tolmača Python - sploh vam ni treba namestiti Pythona, če tega ne želite (če želite, si oglejte naš vodnik po virtualnih okoljih).





Podatkovne strukture

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

Za nekatere ste morda že slišali linearno podatkovni tipi (elementi so zaporedni):



  • Niz
  • Matrica
  • Iskalna tabela

Podobno, sezname pogosto vsebujejo pravila in metode za urejanje njihovega delovanja. Nekateri pogosti seznami so:

  • Povezani seznam
  • Dvojno povezan seznam
  • Array List ali Dynamic Array

Obstaja veliko različnih podatkovnih struktur. Morda ste že slišali binarna drevesa , grafi , oz hashes . Danes bom razpravljal o osnovah, vendar boste morda želeli izvedeti več, ko vam bo udobno.





Niz

Začnimo na začetku. Niz je preprosta zbirka (povezanih) vrednosti. Te vrednosti se imenujejo elementi. Običajno so lahko kateri koli tip podatkov, ki vam je všeč, vključno s predmeti ali drugimi seznami! Glavno opozorilo pri nizih je, da morajo biti vsi podatki enaki - ne morete shraniti mešanih nizov in celih števil. Ti skoraj vedno morate določiti, koliko elementov želite shraniti. Spremenljiva velikost oz dinamične matrike obstajajo, vendar so matrike s fiksno dolžino enostavnejše za začetek.

Python stvari nekoliko zaplete. Olajša vam stvari, vendar se ne drži vedno strogih opredelitev podatkovnih struktur. Večina predmetov v Pythonu je običajno seznamov, zato je ustvarjanje matrike pravzaprav več dela. Tukaj je nekaj začetne kode:





from array import array
numbers = array('i', [2, 4, 6, 8])
print(numbers[0])

Prva vrstica uvaža datoteko matriko module - to je potrebno za delo z matrikami. Druga vrstica ustvari novo polje z imenom številke in ga inicializira z vrednostmi 2, 4, 6 in 8. Vsakemu elementu je dodeljen znak celo število vrednost, imenovana a ključ ali kazalo . Ključi se začnejo pri nič , torej številke [0] bo imel dostop do prvega elementa ( 2 ):

Morda se sprašujete, kaj je 'jaz' se uporablja za. To je a koda vrste ki pove Pythonu, da bo matrika shranjevala cela števila. Tovrstne stvari običajno ne bi bile potrebne v Pythonu (to bi veljalo za »nepisonsko«). Razlog za to je preprost. Nizovi v Pythonu so zelo tanek ovoj na osnovnih nizih C vašega operacijskega sistema. To pomeni, da so hitri in stabilni, vendar se morda ne držijo vedno sintakse Python.

wifi nima veljavne konfiguracije ip 2018

V te matrike ne morete shraniti mešanih vrst. Recimo, da želite shraniti niz 'makeuseof.com':

numbers = array('i', [2, 4, 6, 'makeuseof.com'])

To ne bo dovoljeno in bo povzročilo izjemo:

Tako lahko natisnete vse elemente:

print(numbers)

Ta način dostopa do elementov matrike dobro deluje in je kot nalašč za pravo nalogo. Kar ni dobro, je dostop do celotnega niza. Programerji so 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 napor kopiranja in lepljenja.

Vsak programski jezik bo uvedel nekakšno zanko, ki je kot nalašč za ponavljanje (zankanje) nad elementi seznama. Najpogostejše zanke so medtem in za . Python še olajša stvari z zagotavljanjem za v zanka:

for number in numbers:
print(number)

Upoštevajte, kako vam ni bilo treba dostopati do elementov po njihovem ključu. To je veliko boljši način dela z matriko. Drug način za ponovitev po seznamu je z za zanka:

for i in range(len(numbers)):
print(numbers[i])

To naredi popolnoma enako kot prejšnji primer, čeprav ste morali določiti število elementov v matriki ( len (avtomobili) ), skupaj s prehodom jaz kot ključ matrike. To je skoraj točno ta koda za v zanke tečejo. Ta način zagotavlja nekoliko večjo prilagodljivost in je nekoliko hitrejši (čeprav za v zanke so več kot dovolj hitre večina časa.)

Seznami

Zdaj, ko veste, kako matrike delujejo, poglejmo seznam. Včasih je lahko zmedeno, saj ljudje medsebojno uporabljajo različno terminologijo in sezname so matrike ... nekako.

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

kaj je bolje mbr ali gpt
cars = ['Ford', 'Austin', 'Lancia']

Upoštevajte, kako vam ni treba uvoziti matriko modul?

Ta sintaksa razglasi seznam avtomobilov. Znotraj oglatih oklepajev je naveden vsak element seznama. Vsak element je ločen z vejico, in ker je vsak element niz, jih razglasite znotraj narekovajev. Python ve, da je to predmet, zato je tiskanje stavek prikaže vsebino seznama:

print(cars)

Tako kot pri matriki lahko elemente seznama ponavljate z uporabo zank:

for car in cars:
print(car)

Pravi strankarski trik seznamov je njihov mešani tip. Pojdite in dodajte nekaj dodatnih podatkov:

cars = ['Ford', 'Austin', 'Lancia', 1, 0.56]

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

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

cars = ['Ford', 'Austin']
print(cars)
cars.append('Lancia')
print(cars)

Dva seznama lahko tudi združite v enega:

cars = ['Ford', 'Austin']
print(cars)
other_cars = ['Lotus', 'Lancia']
cars.extend(other_cars)
print(cars)

Prav tako je enostavno odstraniti elemente z Odstrani skladnja:

cars = ['Ford', 'Austin', 'Lotus', 'Lancia']
print(cars)
cars.remove('Ford')
print(cars)

To zajema osnove seznamov in nizov v Pythonu. Zakaj ne bi razmislili o projektu kodiranja, kot je branje in pisanje v Google Preglednice, branje podatkov json. Morda bi lahko svoje nove veščine uporabili pri ustvarjanju nekaterih gumbi za bližnjice po meri . Čeprav so druga programska jezika, ta načela matrike še vedno veljajo.

Deliti Deliti Cvrkutati E-naslov 5 nasvetov za polnjenje vaših strojev VirtualBox Linux

Ste naveličani slabe zmogljivosti, ki jo ponujajo virtualni stroji? Tukaj je tisto, kar morate storiti za povečanje zmogljivosti VirtualBox.

Preberite Naprej
Sorodne teme
  • Programiranje
  • Programiranje
  • Python
O avtorju Joe Coburn(136 objavljenih člankov)

Joe je diplomiral iz računalništva na Univerzi v Lincolnu v Veliki Britaniji. Je poklicni razvijalec programske opreme in ko ne leti z brezpilotnimi letali ali ne piše glasbe, ga pogosto najdejo pri fotografiranju ali ustvarjanju videoposnetkov.

Več od Joea Coburna

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, da se naročite