Hvordan matriser og lister fungerer i Python

Hvordan matriser og lister fungerer i Python

Arrays og lister er noen av de mest nyttige datastrukturer i programmering - selv om få mennesker virkelig bruker dem til sitt fulle potensial. I dag skal jeg snakke deg gjennom det grunnleggende, sammen med noen enkle Python -eksempler.





Forutsetninger

Det er ikke mye du trenger å vite på forhånd for å lære disse konseptene. En grunnleggende kunnskap om programmeringsparadigmer og Python vil være nyttig, men det er ikke nødvendig. Les vår grunnleggende Python -eksempler hvis du ikke vet hvor du skal begynne. Hvis du tror Python er et ubrukelig språk, kan du sjekke årsakene våre til hvorfor det ikke er det.





Selv om følgende grunnleggende ideer kan brukes på alle språk, vil jeg demonstrere eksemplene i Python. Det er et enkelt språk å lære og gir en utmerket plattform for å forstå hva som skjer. I tillegg til denne, tutorialspoint.com gir en utmerket online Python -tolk - du trenger ikke engang å installere Python hvis du ikke vil (hvis du gjør det, sjekk vår guide til virtuelle miljøer).





Datastrukturer

Hva er en data struktur ? På sitt mest grunnleggende nivå er en datastruktur en måte å lagre data effektivt på. Det er lett å bli forvirret fordi datastrukturer ikke er det datatyper . Datatyper forteller kompilatoren (eller i Pythons tilfelle tolken) hvordan dataene skal brukes. Datastrukturer spesifiserer operasjoner som kan utføres, og implementerer ofte spesifikke regler og forskrifter.

Du har kanskje hørt om noen lineær datatyper (elementene er sekvensielle):



  • Array
  • Matrise
  • Oppslagstabell

På samme måte, lister inneholder ofte regler og metoder for å regulere hvordan de fungerer. Noen vanlige lister er:

  • Tilknyttet liste
  • Dobbelt lenket liste
  • Array List eller Dynamic Array

Det er en mengde forskjellige datastrukturer. Du har kanskje hørt om binære trær , grafer , eller hashes . Jeg vil diskutere det grunnleggende i dag, men du vil kanskje lære mer når du er komfortabel.





Array

La oss begynne på begynnelsen. En matrise er en enkel samling av (relaterte) verdier. Disse verdiene kalles elementer. De kan vanligvis være hvilken som helst datatype du liker, inkludert objekter eller andre lister! Den viktigste advarselen med matriser er at alle dataene må være de samme - du kan ikke lagre blandede strenger og heltall. Du nesten må alltid angi hvor mange elementer du vil lagre. Variabel størrelse eller dynamiske matriser finnes, men matriser med fast lengde er enklere å begynne med.

Python kompliserer ting noe. Det gjør ting veldig enkelt for deg, men det holder seg ikke alltid til strenge definisjoner av datastrukturer. De fleste objektene i Python er vanligvis lister, så det er mer arbeid å lage en matrise. Her er noen startkoder:





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

Den første linjen importerer matrise modul - det er nødvendig for å arbeide med matriser. Den andre linjen oppretter en ny matrise kalt tall og initialiserer den med verdiene 2, 4, 6 og 8. Hvert element er tildelt en heltall verdi kalt a nøkkel eller indeks . Nøkler starter kl null , så tall [0] får tilgang til det første elementet ( 2 ):

Du lurer kanskje på hva 'Jeg' brukes til. Dette er en skrivekode som forteller Python at matrisen vil lagre heltall. Denne typen ting ville normalt ikke være nødvendig i Python (det vil bli betraktet som 'upytonisk'). Grunnen til dette er enkel. Matriser i Python er en veldig tynn innpakning på de underliggende C -matrisene i operativsystemet. Dette betyr at de er raske og stabile, men de følger kanskje ikke alltid Python -syntaksen.

hvor kan jeg skrive ut papirer

Du kan ikke lagre blandede typer i disse matrisene. Si at du ønsket å lagre strengen 'makeuseof.com':

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

Dette er ikke tillatt og vil gjøre et unntak:

Slik kan du skrive ut alle elementene:

print(numbers)

Denne metoden for å få tilgang til matriseelementer fungerer bra, og den er perfekt for den riktige oppgaven. Det det ikke er bra for er å få tilgang til hele matrisen. Programmerere er iboende lat, så jeg skriver gjerne mer, bedre kode, hvis det betyr at jeg kan gjøre vedlikeholdet enklere og redusere kopier og lim -innsats.

Hvert programmeringsspråk vil implementere en sløyfe av noe slag, som er perfekte for iterering (looping) over listeelementer. De vanligste løkkene er samtidig som og til . Python gjør ting enda enklere ved å tilby en for i Løkke:

for number in numbers:
print(number)

Legg merke til hvordan du ikke måtte få tilgang til elementer med nøkkelen. Dette er en mye bedre måte å jobbe med en matrise. En alternativ måte å gjenta over en liste er med en til Løkke:

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

Dette gjør nøyaktig det samme som forrige eksempel, selv om du har måttet angi antall elementer i matrisen ( len (biler) ), sammen med bestått Jeg som nøkkelen til matrisen. Dette er nesten nøyaktig koden som for i løkker løper. Denne måten gir litt mer fleksibilitet, og er litt raskere (selv om for i sløyfer er mer enn raske nok flertall av tiden.)

Lister

Nå som du vet hvordan matriser fungerer, la oss se på en liste. Det kan være forvirrende noen ganger, ettersom folk bruker forskjellig terminologi om hverandre og lister er matriser ... slags.

En liste er en spesiell type matrise. Den største forskjellen er at lister kan inneholde blandet typer (husk, matriser må inneholde elementer av samme type). Lister er veldig enkle i Python:

directshow -kompatible mpeg 4 -dekoderpakker
cars = ['Ford', 'Austin', 'Lancia']

Legg merke til hvordan du ikke trenger å importere matrise modul?

Denne syntaksen erklærer en liste som kalles biler. Inne i firkantede parenteser er hvert element i listen deklarert. Hvert element er atskilt med et komma, og ettersom hvert element er en streng, erklærer du dem inne i anførselstegn. Python vet at dette er et objekt, så skrive ut setningen vil sende innholdet i listen:

print(cars)

På samme måte som med matrisen, kan du gjenta listeelementer over sløyfer:

for car in cars:
print(car)

Det virkelige festtricket av lister er deres blandede type. Legg til noen ekstra data:

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

Dette er ikke noe problem for Python - det ga ikke engang et unntak:

Det er enkelt å legge til nye elementer i en liste (noe som ikke er mulig med matriser):

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

Du kan også slå sammen to lister til en:

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

Det er like enkelt å fjerne elementer ved hjelp av ta bort syntaks:

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

Det om dekker det grunnleggende om lister og matriser i Python. Hvorfor ikke vurdere et kodingsprosjekt, for eksempel å lese og skrive til Google Sheets, lese json -data. Kanskje du kan bruke de nye ferdighetene dine til å lage noen egendefinerte snarveiknapper . Til tross for at de er et annet programmeringsspråk, gjelder disse matriseprinsippene fortsatt.

Dele Dele kvitring E -post 5 tips for å overbelaste VirtualBox Linux -maskinene dine

Lei av den dårlige ytelsen som tilbys av virtuelle maskiner? Her er hva du bør gjøre for å øke VirtualBox -ytelsen.

Les neste
Relaterte temaer
  • Programmering
  • Programmering
  • Python
Om forfatteren Joe Coburn(136 artikler publisert)

Joe er utdannet i informatikk fra University of Lincoln, Storbritannia. Han er en profesjonell programvareutvikler, og når han ikke flyr droner eller skriver musikk, kan han ofte bli funnet å ta bilder eller produsere videoer.

Mer fra Joe Coburn

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere