Kun je het geloven?
Ik hoop dat ik je niet in slaap heb gebracht, maar we zijn er bijna.
We hebben nog een laatste hoofdgegevenstypeset en dan zijn we klaar.
Ik weet.
Ik weet dat dit niet het meest opwindende onderwerp is.
Geloof me, dit is het moeilijkste.
Als je begint en je leert deze dingen gewoon zonder het te begrijpen, waarom heb ik dit dan nodig?
Hoe ga ik het volgende spel bouwen?
Hoe ga ik de volgende Netflix bouwen?
Hoe ga ik de volgende coolste Apple-app bouwen?
Je kijkt hiernaar en denkt, ik heb net wat theorie geleerd.
Ik heb het gevoel alsof ik weer in de wiskundeles zit.
Ik weet.
Geloof me.
Ik ben hier doorheen gegaan.
Ik was ook een autodidactische programmeur.
Dit zijn de Legoblokken die onze basis vormen.
Als we deze eenmaal hebben geleerd, kunnen we verder gaan met nieuwe dingen.
En je zult zien dat als je eenmaal deze kleine berg hebt beklommen, de dingen zoveel gemakkelijker worden en je de kracht
zult beseffen.
Als we beginnen met het bouwen van deze projecten tegen het einde van de les, waar je gaat zeggen,
oh, al deze blokken die we hebben geleerd, zal dit ronduit saaie deel allemaal logisch worden.
Dus blijf erbij.
Het hoort moeilijk te zijn.
Het zou moeilijk moeten zijn, maar je zult snel zien waarom dit zo krachtig is en waarom wat we zojuist hebben
geleerd ons in staat zal stellen om echt geweldige dingen te bouwen en een aantal echt geweldige programma's te maken.
Dus laten we eindigen met de laatste, het laatste gegevenstype, de laatste gegevensstructuur die we in Python zullen
zien, althans van de belangrijkste.
En het heet set en sets zijn gewoon ongeordende verzamelingen van unieke objecten.
Hm.
Laten we eens kijken.
Laten we een mind-set maken en mijn set maken we met accolades zoals een woordenboek, maar in plaats van een
woordenboek hebben we geen sleutelwaardeparen.
In plaats daarvan hebben we gewoon waarden als één, twee, drie, vier of vijf.
Dat is het, dat is een set die we zojuist hebben gemaakt, maar onthoud, de definitie die ik
je gaf is een ongeordende verzameling unieke objecten.
Wat betekent dat?
Nou, als ik dit print en mijn set zeg en ik klik op uitvoeren.
Ik krijg een set, maar als ik, laten we zeggen, nog eens vijf hier had en ik klik op rennen.
Het retourneert alleen de unieke sets of unieke items die je in een set ziet, er zijn geen duplicaten.
Alles moet uniek zijn.
Dus dit vuur wordt gewoon nooit toegevoegd aan een set, je kunt bijvoorbeeld dingen toevoegen aan een set zoals mijn set en dan
kan ik zeggen toevoegen en het een waarde van honderd geven.
En laten we zeggen dat ik mijn vaste punt-advertentie doe en het dan geef als ik klik, hierheen ren.
Ik zie dat ik er honderd kon toevoegen, maar twee waren niet echt toegevoegd omdat mijn
gezegde die gegevens al bevatte.
Het is ongeordend.
Ik bedoel, we hebben er hier één, twee, drie, vier of vijf gecreëerd, maar er zit geen echte orde in.
Er is geen boekenplank in onze geheugenruimte die naast elkaar staat.
Deze staan overal in het geheugen.
Maar een set kan ze vinden omdat ze allemaal uniek zijn.
Dus ze bevinden zich allemaal op slechts één locatie in het geheugen.
Dus laat me je dit vragen, en dit wordt een leuke kleine oefening.
Als ik je een array geef.
En laten we zeggen dat deze array, nou ja, dit hier bevat.
En ik wil dat je een array retourneert zonder duplicaten, dus ik wil alles erin, laten we zeggen,
laten we het mijn lijst noemen.
En een programmeur heeft dit al gemaakt.
OK, en dan is het jouw taak om een lijst of verzameling te maken of terug te sturen die alleen unieke items bevat.
Hoe zou je dit gaan omzetten in een set?
Nou, dit hebben we eerder gezien.
We hebben een set-functie en we verpakken mijn lijst gewoon in die set.
En dat is uitgeprint.
Ik klik, ren.
Bekijken.
We hebben een nieuwe set gevormd uit een lijst.
En ik heb alle dubbele waarden verwijderd, wanneer zou dit nuttig zijn?
Stel je voor dat we gebruikersnamen, rechten of e-mailadressen hadden waar e-mailadressen werden verzameld op onze
opstartpagina, maar we willen geen dubbele e-mails hebben.
We willen misschien een lijst met e-mails converteren naar een set en eventuele duplicaten verwijderen.
We sturen dus niet steeds opnieuw e-mails.
Dus dat is echt gaaf.
Hoe zit dit, laten we dit veranderen in een set, dus laten we het mijn set noemen.
Het gaat dit veranderen in een set.
Daar ga je.
En wat als ik toegang wilde krijgen tot mijn set een index van nul?
Hmm, set object ondersteunt geen indexering.
Nou, nogmaals, je kunt het meer zien als een woordenboek om toegang te krijgen tot een set, we moeten het item
pakken dat erin zit.
Dat is de sleutel om de informatie uit het geheugen te halen.
De manier waarop we zouden controleren of iets bestaat, is door simpelweg te zeggen, hey, is er een in mijn set en we voeren dit uit.
En we komen er aan.
We kunnen ook de lengte van mijn set doen en we krijgen er weer vijf, niets te gek, maar één, twee, drie, vier,
vijf.
Onthoud dat het alleen de unieke dingen telt, omdat dit nooit wordt ingevoerd.
Het is een stel.
En als alternatief kunnen we dit ook omzetten in een lijst.
Als ik hier op uitvoeren klik, zie je dat ik mijn set nu als lijst heb.
En dan kunnen we ook, laten we zeggen, mijn set-dochter kopiëren en mijn set daadwerkelijk kopiëren naar iets, laten we
zeggen nieuw.
Of nieuwe set, en dan is deze helemaal anders of een nieuw exemplaar, dan deze originele.
Dus laten we dit eens testen, deze nieuwe set.
Als ik een methode gebruik die we misschien eerder hebben gezien, namelijk mijn set dot clear, die, zoals je je kunt voorstellen, de set
wist en ik klik op uitvoeren.
Ik heb die nieuwe set, maar als ik probeer alles af te drukken, wat mijn set was, zal het leeg zijn, een
lege set, maar de ware kracht van sets komt binnen.
De volgende paar methoden die ik je ga laten zien en sets hebben nogal wat methoden, maar maak je geen zorgen,
de meeste lijken erg op elkaar.
Laten we dat dus onderzoeken in de volgende video.