Hvordan Arrays og lister jobber i Python
Arrayer og lister er noen av de mest nyttige datastrukturene i programmering - selv om få mennesker virkelig bruker dem til sitt fulle potensiale. I dag snakker jeg deg gjennom det grunnleggende, sammen med noen enkle Python-eksempler.
Forutsetninger
Det er ikke mye du trenger å vite før tiden for å lære disse konseptene. En grunnleggende kunnskap om programmeringsparadigmer og Python vil være nyttig, men det er ikke nødvendig. Les våre grunnleggende Python-eksempler 10 Grunnleggende pythoneksempler som vil hjelpe deg med å lære deg raskt 10 Grunnleggende Python-eksempler som vil hjelpe deg med å lære deg raskt Denne artikkelen av grunnleggende python-eksempler er for de som allerede har noen programmeringserfaring og bare vil overgå til Python så fort som mulig. Les mer hvis du ikke vet hvor du skal begynne. Hvis du tror at Python er et ubrukbart språk, sjekk ut hvorfor det ikke er 5 grunner til at Python-programmering ikke er ubrukelig. 5 Grunner til at Python-programmering ikke er ubrukelig Python - Du elsker heller det, eller du hater det. Du kan til og med svinge fra den ene enden til den andre som en pendel. Uansett, Python er et språk som er vanskelig å være ambivalent om. Les mer .
Mens følgende grunnleggende ideer kan brukes på hvilket som helst språk, demonstrerer jeg eksemplene i Python. Det er et enkelt språk å lære og gir en utmerket plattform for å forstå hva som skjer. I tillegg til dette gir tutorialspoint.com en utmerket online Python tolk - du trenger ikke engang å installere Python hvis du ikke vil (hvis du gjør det, sjekk ut vår guide til virtuelle miljøer Lær hvordan du bruker Python Virtual Miljø Lær hvordan du bruker Python Virtual Environment Uansett om du er en erfaren Python-utvikler, eller du er bare i gang med å lære å sette opp et virtuelt miljø, er det viktig for et Python-prosjekt. Les mer).
Datastrukturer
Hva er en data struktur? På sitt mest grunnleggende nivå er en datastruktur en måte å lagre data på effektivt. Det er lett å bli forvirret fordi datastrukturer ikke er datatyper. Datatyper forteller kompilatoren (eller i Pythons tilfelle tolken) hvordan dataene skal brukes. Datastrukturer angir operasjoner som kan utføres, og implementerer ofte bestemte regler og forskrifter.
Du har kanskje hørt om noen lineær datatyper (elementer er sekvensielle):
- Array
- Matrise
- Oppslagstabell
på samme måte, lister inneholder ofte regler og metoder for å regulere hvordan de opererer. Noen vanlige lister er:
- Tilknyttet liste
- Dobbeltkoblet 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 skal diskutere det grunnleggende i dag, men du vil kanskje lære mer når du er komfortabel.
Array
La oss starte i begynnelsen. Et array er en enkel samling av (relaterte) verdier. Disse verdiene kalles elementer. De kan vanligvis være hvilken datatype du liker, inkludert objekter eller andre lister! Hovedgrensen med arrays 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 arrays eksisterer, men fastlengde-arrays er enklere å begynne med.
Python kompliserer ting litt. Det gjør ting veldig enkelt for deg, men det holder ikke alltid strenge definisjoner av datastrukturer. De fleste objekter i Python er vanligvis lister, så å lage en matrise er faktisk mer arbeid. Her er noen startkode:
fra array import array numbers = array ('jeg', [2, 4, 6, 8]) utskriftstall [0]
Den første linjen importerer matrise modul - det er nødvendig å jobbe med arrays. Den andre linjen oppretter et nytt system som heter tall og initialiserer den med verdiene 2, 4, 6 og 8. Hvert element er tildelt en heltall verdi kalt a nøkkel eller index. Taster starter på null, så nummer [0] vil få tilgang til det første elementet (2):
Du lurer kanskje på hva 'Jeg' brukes til. Dette er en typecode som forteller Python, vil arrayet lagre heltall. Denne typen ting ville normalt ikke være nødvendig i Python (det ville bli vurdert “unpythonic”). Årsaken til dette er enkelt. Arrays i Python er en veldig tynn wrapper på de underliggende C-arrays av operativsystemet. Dette betyr at de er raske og stabile, men de kan ikke alltid holde seg til Python-syntaksen.
Du kan ikke lagre blandede typer i disse arrays. Si at du ønsket å lagre strengen “makeuseof.com”:
tall = array ('jeg', [2, 4, 6, "makeuseof.com"])
Dette vil ikke bli tillatt og vil kaste et unntak:
Slik kan du skrive ut alle elementene:
skriv ut tall
Denne metoden for å få tilgang til arrayelementer virker bra, og den er perfekt for den rette oppgaven. Det som ikke er bra for, er å få tilgang til hele gruppen. Programmerer er selvsagt lat, så jeg vil gjerne skrive mer, bedre kode, hvis det betyr at jeg kan gjøre vedlikehold enklere og redusere kopi og lim inn innsats.
Hvert programmeringsspråk vil implementere en sløyfe av noe slag, som er perfekte for iterating (looping) over listelementer. De vanligste sløyfer er samtidig som og til. Python gjør ting enda enklere ved å gi en for i løkke:
for nummer i tall: utskrift nummer
Legg merke til hvordan du ikke behøvde å få tilgang til elementer med nøkkelen. Dette er en mye bedre måte å jobbe med med en matrise. En alternativ måte å iterere over en liste er med a til løkke:
for jeg i rekkevidde (len (tall)): utskriftsnumre [i]
Dette gjør akkurat det samme som forrige eksempel, selv om du må spesifisere antall elementer i arrayet (Len (biler)), sammen med forbigående Jeg som nøkkelen til matrisen. Dette er nesten nøyaktig koden som for i løkker løp. 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 arrays fungerer, la oss se på en liste. Det kan være forvirrende noen ganger, da folk bruker forskjellig terminologi utveksling og lister er arrays ... slags.
En liste er en spesiell type array. Den største forskjellen er at lister kan inneholde mixed typer (husk, arrays må inneholde elementer av samme type). Lister er veldig enkle i Python:
biler = ['Ford', 'Austin', 'Lancia']
Legg merke til hvordan du ikke trenger å importere matrise modul?
Denne syntaksen erklærer en liste som kalles biler. Inne i torget parentes, er hvert element av listen erklært. Hvert element er adskilt av et komma, og som hvert element er en streng, erklærer du dem i anførselstegn. Python vet at dette er et objekt, så skrive ut erklæringen vil utgjøre innholdet i listen:
print biler
Akkurat som med matrisen, kan du gjenta listelementer over bruk av løkker:
for bil i biler: utskrift bil
Det virkelige festtricket av lister er deres blandede type. Gå videre og legg til litt ekstra data:
biler = ['Ford', 'Austin', 'Lancia', 1, 0,56]
Dette er ikke noe problem for Python - det gjorde ikke engang et unntak:
Det er enkelt å legge til nye elementer i en liste (noe ikke mulig med arrayer):
biler = ['Ford', 'Austin'] skriv ut biler cars.append ('Lancia') utskriftsbiler
Du kan også slå sammen to lister i en:
biler = ['Ford', 'Austin'] print biler other_cars = ['Lotus', 'Lancia'] cars.extend (other_cars) print cars
Det er like enkelt å fjerne elementer ved hjelp av fjerne syntaks:
biler = ['Ford', 'Austin', 'Lotus', 'Lancia'] print biler cars.remove ('Ford') print biler
Det handler om de grunnleggende om lister og arrays i Python. Hvorfor ikke vurdere et kodingsprosjekt, for eksempel å lese og skrive til Google Sheets Hvordan lese og skrive til Google-ark med python Hvordan lese og skrive til Google-ark med Python Python kan virke rart og uvanlig, men det er lett å lære og bruke . I denne artikkelen vil jeg vise deg hvordan du leser og skriver til Google Sheets ved hjelp av Python. Les mer, les json data Hvordan få Python og JavaScript til å kommunisere ved hjelp av JSON Hvordan få Python og JavaScript til å kommunisere ved hjelp av JSON I dag vil jeg vise deg hvordan du bruker JSON til å sende data fra JavaScript til Python. Jeg skal dekke hvordan du konfigurerer en webserver, sammen med all koden du trenger. Les mer . Kanskje du kan sette dine nye ferdigheter til å bruke å lage noen egendefinerte snarveisknapper Lag din egen egendefinerte snarveisknapp med en Arduino Lag din egen egendefinerte snarveisknapp med en Arduino Den ydmyke Arduino kan gjøre mange ting, men visste du at det kan etterligne en USB-tastatur? Du kan kombinere lange tastatursnarveier i en enkelt tilpasset snarvei, med denne enkle kretsen. Les mer . Til tross for at det er et annet programmeringsspråk, gjelder disse gruppeprinsippene fortsatt.
Har du lært noe nytt? Vil du se noe mer komplisert innhold? Gi oss beskjed om dine tanker i kommentarene nedenfor!
Utforsk mer om: Programmering, Python.