Hvordan arrays og lister fungerer i Python

Hvordan arrays og lister fungerer i Python

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





Forudsætninger

Der er ikke meget du skal vide på forhånd for at lære disse begreber. 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 hvis du ikke ved, hvor du skal starte. Hvis du synes, at Python er et ubrugeligt sprog, så tjek vores grunde til, hvorfor det ikke er det.





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 glimrende platform til at forstå, hvad der foregår. Ud over dette, tutorialspoint.com giver en glimrende online Python -tolk - du behøver ikke engang at installere Python, hvis du ikke vil (hvis du gør det, så tjek vores guide til virtuelle miljøer).





Datastrukturer

Hvad er en datastruktur ? På sit mest basale niveau er en datastruktur en måde til effektivt at lagre data. Det er let at blive forvirret, fordi datastrukturer ikke er det datatyper . Datatyper fortæller kompilatoren (eller i Pythons tilfælde tolken), hvordan dataene skal bruges. Datastrukturer angiver 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 sekventielle):



  • Array
  • Matrix
  • Opslagstabel

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

  • Linket liste
  • Dobbelt linket 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 vil måske lære mere, når du har det godt.





Array

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

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





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

Den første linje importerer array modul - det er nødvendigt for at arbejde med arrays. Den anden linje opretter et nyt array kaldet tal og initialiserer det med værdierne 2, 4, 6 og 8. Hvert element er tildelt en heltal værdi kaldet a nøgle eller indeks . Nøgler starter kl nul , altså tal [0] får adgang til det første element ( 2 ):

Du undrer dig måske over, hvad 'jeg' bruges til. Dette er en typekode der fortæller Python, at arrayet vil gemme heltal. Denne slags ville normalt ikke være nødvendig i Python (det ville blive betragtet som 'upythonisk'). Årsagen til dette er enkel. Arrays i Python er en meget tynd indpakning på de underliggende C -arrays i dit operativsystem. Det betyder, at de er hurtige og stabile, men de overholder muligvis ikke altid Python -syntaksen.

hvor meget skal man udskifte macbook pro batteri

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 vil give en undtagelse:

Sådan kan du udskrive alle elementerne:

print(numbers)

Denne metode til adgang til array -elementer fungerer godt, og den er perfekt til den rigtige opgave. Hvad det ikke er godt for, er at få adgang til hele arrayet. Programmører er i sagens natur dovne, så jeg skriver med glæde mere, bedre kode, hvis det betyder, at jeg kan gøre vedligeholdelse lettere og reducere kopi- og indsætningsindsatsen.

Hvert programmeringssprog vil implementere en slags loop, som er perfekte til iterering (looping) over listeelementer. De mest almindelige sløjfer er mens og til . Python gør tingene endnu lettere ved at levere en for i loop:

for number in numbers:
print(number)

Bemærk, hvordan du ikke behøvede at få adgang til elementer med deres nøgle. Dette er en meget bedre måde at arbejde med et array. En alternativ måde at gentage en liste på er med en til loop:

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

Dette gør nøjagtig det samme som det foregående eksempel, selvom du har været nødt til at angive antallet af elementer i arrayet ( len (biler) ), sammen med bestået jeg som nøglen til arrayet. Dette er næsten præcis koden, der for i sløjfer kører. Denne måde giver lidt mere fleksibilitet og er lidt hurtigere (selvom for i sløjfer er mere end hurtige nok flertal af tiden.)

Lister

Nu hvor du ved, hvordan arrays fungerer, lad os se på en liste. Det kan nogle gange være forvirrende, da folk bruger forskellig terminologi og lister er arrays ... slags.

En liste er en særlig type array. 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:

bedste måde at rippe blu ray
cars = ['Ford', 'Austin', 'Lancia']

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

Denne syntaks erklærer en liste kaldet biler. Inde i firkantede parenteser erklæres hvert element på listen. Hvert element er adskilt med et komma, og da hvert element er en streng, erklærer du dem inde i anførselstegn. Python ved, at dette er et objekt, så Print sætning udsender listens indhold:

print(cars)

Ligesom med arrayet kan du gentage listeelementer ved hjælp af loops:

for car in cars:
print(car)

Listernes virkelige festtrick er deres blandede type. Fortsæt med at tilføje nogle ekstra data:

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

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

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

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

Du kan også flette to lister til en:

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

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

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

Det dækker omtrent det grundlæggende i lister og arrays i Python. Hvorfor ikke overveje et kodningsprojekt, såsom at læse og skrive til Google Sheets, læse json -data. Måske kunne du bruge dine nye færdigheder til at lave nogle brugerdefinerede genvejsknapper . På trods af at det er et andet programmeringssprog, gælder disse matrixprincipper stadig.

Del Del Tweet E -mail 5 tips til at overlade dine VirtualBox Linux -maskiner

Træt af den dårlige ydelse, der tilbydes af virtuelle maskiner? Her er hvad du skal gøre for at øge din VirtualBox -ydeevne.

Læs Næste
Relaterede emner
  • Programmering
  • Programmering
  • Python
Om forfatteren Joe Coburn(136 artikler udgivet)

Joe er uddannet i datalogi fra University of Lincoln, UK. Han er en professionel softwareudvikler, og når han ikke flyver med droner eller skriver musik, kan han ofte findes tage fotos eller producere videoer.

Mere fra Joe Coburn

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere