Python - datastrukturer

Lærebok:

  • 10: Lists
  • 11: Tuples, Dictionaries and Sets

Lister
Tupler
Hashtabell
Mengder

Lists
Tuples
Dictionaries
Sets

Ordnet
Uordnet

Modifiserbar
Ikke modifiserbar

 

(mutable)

Lister

Lister er ordnet: elementene har en fast rekkefølge

Innholdet i lister kan byttes ut - oppdateres

Lister har innebygde metoder som kan stokke om på rekkefølge- og innhold:

sort(), reverse(), sette inn nye elementer, slette elementer

 

Se flere eksempler på uthenting fra og modifisering av lister her:

 

http://folk.ntnu.no/sverrsti/INGG1001-H2019/Lists.html

Opprette lister

L1 = []                # Tom liste

L2 = list(range(100))  # Lager liste over tallene fra 0-99

L3 = ['Merkur,', 'Venus,', 'Tellus,', 'Mars,', 'Jupiter,', 'Saturn,', 'Uranus,', 'Neptun']
# Fjerne element fra liste

L1.pop(2)               # Alt. 1

L1.remove('Tellus')     # Alt. 2

Tupler

Lister er ordnet: elementene har en fast rekkefølge

Innholdet i tupler kan ikke endres etter at de er opprettet. Det kan eliminere en mulig feilkilde i dataprogrammer: Man kan vite at data i et tuppel ikke har blitt endret.

 

Man kan ikke fjerne eller legge til elementer i tupler, og heller ikke sortere eller endre rekkefølge. 

 

Metodene for å hente ut elementer er som hos lister.

T1 = ()                 # Tomt tuppel - dette gir ikke mening. 
                        # Man kan ikke legge inn noe her seinere.

T2 = tuple(range(100))  # Lager tuppel med tallene fra 0-99

T3 = ('Merkur,', 'Venus,', 'Tellus,', 'Mars,', 'Jupiter,', 'Saturn,', 'Uranus,', 'Neptun')

# Parenteser er ikke obligatorisk, men brukes ofte

T3 = 'Merkur', 'Venus', 'Tellus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptun'

Se samme uthentings-eksempler som med lister:

http://folk.ntnu.no/sverrsti/INGG1001-H2019/Tuples.html

"and now for something completly different"
 

- Monty Python
  Flying Circus

traveltime = {
  'Merkur':3.2,
  'Venus': 6.0,
  'Tellus': 8.3,
  'Mars': 12.6,
  'Jupiter': 43.2,
  'Saturn': 79.3,
  'Uranus': 159.6,
  'Neptun': 246.0
}

Hashtabeller
a.k.a. Dictionaries

Dictionaries er ikke ordnet i en bestemt rekkefølge

De består av parvise sammenstillinger av

  • nøkkelverdi
  • datainnhold

Nøklene kan ikke forandres - datainnholdet kan

Bruk av dictionaries forutsetter at det kan knyttes en
id - en nøkkel, til datainnholdet
Dictionaries gir raske oppslag på nøkkelverdier

Nøkler i dictionaries:

 

- må være av immutable type:

int, float, str, tuple

 

Se bruk av dictionaries her:

http://folk.ntnu.no/sverrsti/INGG1001-H2019/Dictionaries.html

 

 

 

Mengder
a.k.a. Sets

Sets er ikke ordnet i en bestemt rekkefølge

De består av unike elementer.

Sets kommer med funksjonalitet som du kjenner fra tradisjonell mengdelære:

  • snitt
  • union
  • m.m.

Innholdet i sets må være av type ikke modifiserbar:

- int, float, str, tuple

 

Sets i seg selv er modifiserbare. Man kan legge til og fjerne elementer i sets.

 

Se bruk av sets her:

http://folk.ntnu.no/sverrsti/INGG1001-H2019/Sets.html