Reklame

Arrays og lister er nogle af de mest nyttige datastrukturer i programmering - selvom få mennesker virkelig bruger dem til deres fulde potentiale. I dag taler jeg dig gennem det grundlæggende sammen med nogle enkle Python-eksempler.

Forudsætninger

Der er ikke meget, du har brug for at vide forud for at lære disse koncepter. En grundlæggende viden om programmeringsparadigmer og Python vil være nyttig, men det er ikke påkrævet. Læs vores grundlæggende Python-eksempler 10 grundlæggende Python-eksempler, der kan hjælpe dig med at lære hurtigtDenne artikel med grundlæggende pythoneksempler er for dem, der allerede har en vis programmeringserfaring og blot ønsker at skifte til Python så hurtigt som muligt. Læs mere hvis du ikke ved, hvor du skal starte. Hvis du synes Python er et nytteløst sprog, så tjek vores grunde til, at det ikke er tilfældet 5 grunde til, at Python-programmering ikke er nytteløsPython - Du elsker enten det, eller du hader det. Du kan endda svinge fra den ene ende til den anden som en pendul. Uanset hvad er Python et sprog, der er svært at være ambivalent med.

instagram viewer
Læs mere .

Selvom følgende grundlæggende ideer kan anvendes på ethvert sprog, demonstrerer jeg eksemplerne i Python. Det er et let sprog at lære og giver en fremragende platform til at forstå, hvad der foregår. Ud over dette, tutorialspoint.com giver en fremragende online Python-tolk - du behøver ikke engang at installere Python, hvis du ikke ønsker det (hvis du gør det, så tjek vores guide til virtuelle miljøer Lær hvordan du bruger det virtuelle Python-miljøUanset om du er en erfaren Python-udvikler, eller du lige er kommet i gang, er det vigtigt at lære at konfigurere et virtuelt miljø for ethvert Python-projekt. Læs mere ).

Datakonstruktioner

Hvad er en datastruktur? På det mest basale niveau er en datastruktur en måde at lagre data effektivt på. Det er let at blive forvirret, fordi datastrukturer ikke er det datatyper. Datatyper fortæller kompilatoren (eller i Pythons tilfælde fortolkeren), hvordan dataene er beregnet til at blive brugt. Datastrukturer specificerer operationer, der kan udføres, og implementerer ofte specifikke regler og forskrifter.

Du har måske hørt om nogle lineær datatyper (elementer er fortløbende):

  • Array
  • Matrix
  • Opslagstabel

Tilsvarende lister indeholder ofte regler og metoder til at regulere, hvordan de fungerer. Nogle almindelige lister er:

  • Tilknyttet liste
  • Dobbeltkædet liste
  • Array List eller Dynamic Array

Der er en overflod af forskellige datastrukturer. Du har måske hørt om binære træer, grafer, eller hashes. Jeg vil diskutere det grundlæggende i dag, men du ønsker måske at lære mere, når du har det godt.

Array

Lad os starte i begyndelsen. En matrix er en simpel samling af (relaterede) værdier. Disse værdier kaldes elementer. De kan normalt være en hvilken som helst datatype, du kan lide, inklusive objekter eller andre lister! Det vigtigste advarsel med arrays er, at alle data skal være de samme - du kan ikke gemme blandede strenge og heltal. Du næsten skal du altid angive, hvor mange elementer du gerne vil gemme. Variabel størrelse eller dynamiske arrays findes, men arrayer med fast længde er enklere at starte med.

Python komplicerer tingene noget. Det gør tingene meget nemme for dig, men det holder ikke altid ved strenge definitioner af datastrukturer. De fleste objekter i Python er normalt lister, så at oprette en matrix er faktisk mere arbejde. Her er nogle startkoder:

fra array import array. tal = matrix ('i', [2, 4, 6, 8]) udskriv numre [0]

Den første linje importerer matrix modul - der kræves for at arbejde med matriser. Den anden linje opretter et nyt opkald kaldet numre og initialiserer det med værdierne 2, 4, 6 og 8. Hvert element tildeles en heltal værdi kaldet a nøgle eller indeks. Taster starter kl nul, så numre [0] får adgang til det første element (2):

Python Arrays

Du spekulerer måske på, hvad 'jeg' bruges til. Dette er en afgiftstypekode der fortæller Python, at matrixen vil lagre heltal. Denne type ting ville normalt ikke være nødvendigt i Python (det ville blive betragtet som ”unpythonic”). Årsagen til dette er enkel. Arrays i Python er en meget tynd indpakning på de underliggende C-matriser på dit operativsystem. Dette betyder, at de er hurtige og stabile, men de overholder muligvis ikke altid Python-syntaks.

Du kan ikke gemme blandede typer i disse arrays. Sig, at du ville gemme strengen “makeuseof.com”:

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

Dette er ikke tilladt og kaster en undtagelse:

Python Arrays

Sådan kan du udskrive alle elementerne:

udskriv numre
Python Arrays

Denne metode til at få adgang til arrayelementer fungerer godt, og den er perfekt til den rigtige opgave. Hvad det ikke er godt for, er at få adgang til hele matrixen. Programmerere er iboende doven, så jeg vil med glæde skrive mere, bedre kode, hvis det betyder, at jeg kan gøre vedligeholdelse lettere og reducere kopi & indsæt.

Hvert programmeringssprog implementerer en løkke af en slags, som er perfekte til at itereere (looping) over listeelementer. De mest almindelige sløjfer er mens og til. Python gør tingene endnu lettere ved at tilvejebringe en for ind loop:

for nummer i tal: udskriv nummer

Bemærk, hvordan du ikke behøver at få adgang til elementer ved hjælp af deres nøgle. Dette er en meget bedre måde at arbejde med en matrix på. En alternativ måde at itereere over en liste på er med til loop:

for i inden for rækkevidde (len (tal)): udskriv numre [i]

Dette gør nøjagtigt det samme som det forrige eksempel, selvom du har været nødt til at specificere antallet af elementer i matrixen (len (biler)) sammen med bestået jeg som nøglen til matrixen. Dette er næsten nøjagtigt den kode, der er for ind løkker løber. Denne måde giver lidt mere fleksibilitet og er lidt hurtigere (selvom for ind løkker er mere end hurtige nok flertal af tiden.)

Lister

Nu hvor du ved, hvordan matriser fungerer, lad os se på en liste. Det kan undertiden være forvirrende, da folk bruger forskellige terminologier om hverandre og lister er arrays… slags.

En liste er en speciel type matrix. Den største forskel er, at lister kan indeholde blandet typer (husk, arrays skal indeholde elementer af samme type). Lister er meget lette i Python:

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

Bemærk, hvordan du ikke behøver at importere matrix modul?

Denne syntaks erklærer en liste kaldet biler. Inde i de firkantede parenteser deklareres hvert element på listen. Hvert element adskilles af et komma, og da hvert element er en streng, erklærer du dem inden for citater. Python ved, at dette er et objekt, så Print erklæring udsender indholdet af listen:

trykbiler
Python Arrays

Ligesom med matrixen, kan du iterere listeelementer ved hjælp af loops:

til bil i biler: printbil
Python Arrays

Det rigtige festtrick med lister er deres blandede type. Gå videre og tilføj nogle ekstra data:

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

Dette er ikke noget problem for Python - det rejste ikke engang en undtagelse:

Python Arrays

Det er let at tilføje nye elementer til en liste (noget ikke muligt med arrays):

cars = ['Ford', 'Austin'] trykbiler. cars.append (Lancia ') trykbiler
Python Arrays

Du kan også flette to lister til en:

cars = ['Ford', 'Austin'] trykbiler. other_cars = ['Lotus', 'Lancia'] cars.extend (other_cars) trykbiler
Python Arrays

Det er lige så let at fjerne elementer ved hjælp af fjerne syntaks:

biler = ['Ford', 'Austin', 'Lotus', 'Lancia'] trykbiler. cars.remove ( 'Ford') trykbiler
Python Arrays

Det omkring dækker det grundlæggende i lister og matriser i Python. Hvorfor ikke overveje et kodningsprojekt, f.eks læse og skrive til Google Sheets Sådan læses og skrives til Google Sheets With PythonPython kan virke mærkelig og usædvanlig, men det er let at lære og bruge. I denne artikel viser jeg dig, hvordan du læser og skriver til Google Sheets vha. Python. Læs mere , læse json data Sådan får du Python og JavaScript til at kommunikere ved hjælp af JSONI dag viser jeg dig, hvordan du bruger JSON til at sende data fra JavaScript til Python. Jeg vil dække, hvordan du opsætter en webserver sammen med al den kode, du har brug for. Læs mere . Måske kan du bruge dine nye færdigheder til at bruge nogle af dem brugerdefinerede genvejsknapper Lav dine egne brugerdefinerede genvejsknapper med en ArduinoDen ydmyge Arduino kan gøre en masse ting, men vidste du, at den kan efterligne et USB-tastatur? Du kan kombinere lange tastaturgenveje til en enkelt brugerdefineret genvejstast med dette enkle kredsløb. Læs mere . På trods af at de er et andet programmeringssprog, gælder disse array-principper stadig.

Har du lært noget nyt? Vil du gerne se noget mere kompliceret indhold? Fortæl os dine tanker i kommentarerne nedenfor!

Joe er uddannet inden for datalogi fra University of Lincoln, UK. Han er en professionel softwareudvikler, og når han ikke flyver droner eller skriver musik, kan han ofte findes, når han tager billeder eller producerer videoer.