Lister og arrays


Av Reiar Kravik, USN

En type variabler er lister og arrays. Her kan vi “samle” mer data en i enkelt variabler. Disse variablene har noe til felles og noe som ikke er likt. Vi ser først på “list” (eller lister) i Python.

List

Vi kan opprette en liste ved for eksempel å sette sammen flere tall eller navn i en klamme parentes. Et eksempel er gitt under. Tenk igjennom hva koden gjør før du kjører den.

Vi ser at variabelen “data” består av et tall og et navn og når vi skriver ut variabelen ser vi hele listen. Vi ser også at når vi skriver ut hvilken type variabel “data” er får vi ut “class ‘list’ “, som viser at vi har en liste.

Vi kan få ut en og en del av listen vår ved å bruke [] og nummeret på delen vi ønsker ut. Ønsker vi å bare få tak tallet gitt i ekesmpelet over skriver vi “print(data[0])”. Husk at i Python brukes indeksene fra 0 og oppover. I dette tilfellet vil indeks 0 være første element i listen, 1999, mens indeks 1 vil være andre element i listen “Ola Nordmann”.

Gjør oppgavene 1) under i Python-vinduet over

Oppgave 1) Skriv ut første(1999) og andre (“Ola Nordmann”) element i listen til skjerm. Sjekk hvilken type disse variabelen er. Gjør oppgaven i Python-vinduet over. (Hint: [], indeks nr, type).

Løsningsforslag

Vi vil av og til legge til et element i en liste, og vi kan man bruke append eller extend. Her ser vi at vi får samme resultat, men vi bruker ulike parenetser. Vi ser også hvordan vi kan fjerne et element i en liste.

Vi kan også se hva som skjer dersom legger sammen to lister, hva skjer?

Oppgave 2) Legg til en variabel, a = 1, i vinduet over. Hva skjer dersom du legger sammen en liste og en slik variabel? Hva skjer dersom du multipliserer en variabel med en liste? (prøv i vinduet over)

Løsningsforslag

Arrays

Arrays ligner på mange måter en liste, men det er noen vesentlige forskjeller. For å bruke arrays henter vi inn en pakke i python som heter numpy. Vi kan nå definere en array.

Oppgave 3) Dersom du nå tar en variabel, a = 2, og +, -, *, / til arrayen “data1” i vinduet over, hva tror du skjer da? Prøv ut og skriv resultatene til skjerm.

Løsningsforslag

Vi ser at i motsetning til med lister så fungerer alle de fire regneartene på arrays. Dette kan være en fordel dersom man skal gjøre regneoperasjonen på alle ledd i en array for eksempel.

Noen kommandoer som kan være nyttige når man jobber med arrays, sånn som linspace, append, argmax, argmin, zeros, arange, etc. Hva gjør disse kommandoene?