Datastructuren
Waarom leren we datastructuren
- datastructuren versenellen processen
- ze zijn intuitief en werken makkelijk
Wanneer gebruiken we datastructuren
- Het netwerk van vrienden op facebook zit in een datastructuur(Graph)
- Het telefoonboek in je telefoon zit in een datastructuur (Dictionary)
- De beschrijving van afstamming (fylogenetische boom)
Lijsten
-
in python hebben we lists
-
lists zijn makkelijk om lineaire data op te slaan
-
in de informatica spreken we meestal over arrays
-
lijsten zijn geordend
-
lijsten hebben als nadeel dat het niet heel snel zoeken is naar een item als je de index niet kent
Dictionaries
- In python kennen we dictionaries
- Dictionaries heten officieel Hashmaps
- een hashmap maakt het mogelijk om het snel een waarde terug te vinden
- hashmaps maken gebruik van een sleutel-waarde combinatie.
Kenmerken van een dictionary
- Een dictionary is ongeordend
- Bevat altijd een sleutel-waarde combinatie
- De waarde mag zelf wel weer een complexe datastructuur zijn als een list, set of dictionary
- De snelheid van het retourneren van een waarde is onafhankelijk van de grootte van de dictionary
Waarom dictionaries
Sets
We kunnen in python met verzamelingen werken ne met set operatoren bewerkingen op uitvoeren
| Python | Betekenis |
|---|---|
| Union | Samenvoeging |
| intersection | Overlap |
| Difference | Verschil |
| ![[INF pwp 3.pdf#page=26 | page=26]] |
Set manipulatie
Creatie van een Set
een Set maak je met het sleutelwoord set
mijnSet = set(['apen', 'noten'])
Toevoegen van waardes
mijnSet.add('miezen')
Sets bestaan uit unieke waardes
Set operations
Bij een symmetric_difference verkrijg je van beide sets wat niet in de overlap zit.
| Statement | Actie |
|---|---|
| s1.union(s2) | Retourneert een set alle items in s1 en s2 |
| s1.intersection(s2) | Retourneert een set van items die zowel in s1 als s2 voorkomen |
| s1.difference(s2) | Retourneert een set van items in s1 die niet in s2 voorkomen |
| s1.symmetric_difference(s 2) | Retourneert een set van items die niet in s1 en niet in s2 voorkomen |
| s1.issubset(s2) | Retourneert True als alle items in s1 zich ook in s2 bevinden |
| s1.issupersubset(s2) | Retourneert True als alle items in s2 zich ook in s1 bevinden |
Kenmerken sets
- Sets bevatten altijd unieke waardes
- Sets zijn ongeordend: de volgorde waarin waardes voorkomen is willekeurig
- Sets mogen zowel getallen als strings bevatten
- Sets zijn zeer geschikt voor het vergelijken van verzameling
Serializing objects
- Met serialization bevries je objecten (datastructuren) en kun je deze opslaan in een bestand.
- Serialization heeft tot doel objecten tijdelijk op te slaan en later weer te kunnen gebruiken.
Kenmerken Serialization
- Objecten en datastructuren worden tijdelijk opgeslagen voor gebruik later
- In Python wordt niet gesproken over serialization maar over pickling (op zuur zetten)