Welkom terug.
Laten we nu verder gaan met lijsten.
Tot nu toe, de vierkante haken, we hebben ze eerder gezien, toch?
We zagen ze bij het werken met strings en net als strings lijken lijsten behoorlijk op elkaar omdat we list
slicing kunnen gebruiken.
Als je het je herinnert, met string slicing, hadden we dingen als hallo en we waren in staat om een string toe te wijzen, laten we zeggen
een variabele string, en we konden een string maken en dan slicen.
Doe dus zoiets.
Waar we de start hadden, de stop en dan de stap door zodat we index van nul begonnen en eindigden op
index van twee.
En ga dan één voor één, dus list slicing is ook voor ons beschikbaar, dus laten we deze kar een beetje groter maken
en je kunt de dingen eigenlijk gewoon schoner maken door hem op deze manier te formatteren.
Oké, dus wat moeten we toevoegen aan onze winkelwagen?
We zullen ook wat speelgoed toevoegen en dan weet je wat, Amazon doet nu boodschappen.
Dus laten we wat heerlijke druiven toevoegen.
Geweldig.
Laten we zeggen dat ik elk item in de winkelwagen wilde hebben terwijl we dit gewoon doen.
En we hebben onze hele lijst, maar laten we wat list slicing gebruiken, laten we zeggen dat ik van het eerste item naar
het tweede item wilde grijpen als ik op uitvoeren klik.
Ik krijg notitieboekjes en zonnebrillen.
Misschien wil ik helemaal tot het einde gaan, maar sla elke seconde over.
Ik krijg schriften en speelgoed.
We begonnen nul.
We stappen over naar speelgoed en we stappen over en we zijn klaar.
Geweldig.
En dit is iets dat we al hebben gezien bij het praten met snaren.
Oké, maar hier wordt het interessant.
Weet je nog hoe ik zei dat snaren onveranderlijk zijn.
Dat betekent dat we ze niet kunnen veranderen.
Rechts.
En we hadden het hierover toen we een string hadden als hallo, ik kon geen gret zero gelijk aan, laten we zeggen
Z.
Ik zou hier een foutmelding krijgen.
Ik krijg het SDR-object ondersteunt geen itemtoewijzing.
Het is onveranderlijk.
Maar het interessante aan lijsten is dat ze veranderlijk zijn.
Zodat als ik mijn Amazon-wagentje verander.
En zeg dat, weet je wat, ik wil niet echt notebooks, dus ik ga het eerste
item pakken, dat notebooks is en in plaats van notebooks, wat willen we?
We zullen zeggen dat we een nieuwe laptop willen.
Het is een grote upgrade.
Wanneer ik dit Amazon-karretje afdruk.
Kijk eens aan, ik kan deze lijst wijzigen.
En het gaf me geen lucht in die zin, lijsten zijn onveranderlijk, we vervangen gewoon op de geheugenboekenplank van onze computernotebooks
en ik zeg, hey, verander het in laptop, en ze laten ons dat doen.
Oké, dus dat is geweldig.
Maar laten we hier iets proberen.
Wat als ik hier en in het Amazon-karretje nog een afdruk maak, gebruik ik list slicing om te zeggen dat ik een item
wil van index van één helemaal tot index van drie.
Laten we dit uitvoeren en kijken wat er gebeurt.
Probeer en raad.
Is dat wat je verwachtte?
Laten we deze code doornemen als we bij regel tien komen, we pakken de Amazon-kar, die is bijgewerkt met
een laptop, en ik pak item één.
Twee, drie, dus dat is een zonnebril.
Naar speelgoed, dus nul één twee, en dan stoppen we om drie uur.
Om dit begrijpelijker te maken, beginnen we hier met nul.
Zodat we zien dat die laptop is veranderd.
En dan hier in de tweede, op regel 11, printen we het Amazon-karretje.
Maar wacht even, deze lijst is niet veranderd, en dat komt omdat we met list slicing een nieuwe lijst
maken, een nieuwe kopie van deze lijst.
Dus hier maken we een geheel nieuwe lijst zodat ik deze daadwerkelijk aan een variabele kan toewijzen.
Nieuwe winkelwagen wordt Amazon-wagen.
En laten we hier hetzelfde doen.
En New Kaat is een geheel nieuwe lijst op zich, ik zou een nieuwe kaart kunnen veranderen, laten we zeggen nul in, laten we zeggen
kauwgom.
En als ik dit afdruk.
Je ziet dat ik twee nieuwe afzonderlijke lijsten heb, maar een lijst is veranderlijk omdat ik alles wat in
de index staat kan veranderen wanneer ik maar wil, en elke keer dat we een lijst maken, maken we een nieuwe kopie van die lijst.
Maar ik heb hier een lastige vraag voor je, wat gebeurt er als ik dit gewoon doe?
Als ik dit uitvoer.
Hm.
Heb je dat gezien?
In plaats van mijn lijst te snijden, zei ik gewoon dat de nieuwe kaart gelijk zal zijn aan de Amazon-kar.
En ik veranderde een nieuwe KAAT-index van nul in gelijk aan Gump, maar nu werd mijn Amazon-kar ook aangepast.
Waarom is dat?
En dit is een beetje een lastige vraag die je zou kunnen tegenkomen in een interview.
De reden is dat op dit moment, de manier waarop ik gelijk heb gedaan, betekent dat, hey, een nieuwe kaart gelijk zal zijn
aan Amazon-kaart.
En waar is Amazon-kar gelijk aan?
Welnu, Amazon-kar verwijst ergens in het geheugen van onze machines die zegt, hé, dit is wat Amazon-kar
is.
Dus omdat we hier de lijst niet kopiëren.
In plaats daarvan zeggen we gewoon, hey, de waarde van een nieuwe kaart is wat er in het geheugen van de Amazon-kar staat.
We veranderen nu, wanneer we Nikhat aanpassen, gewoon de Amazon-kar helemaal terug vanaf hier.
Dit is dus een belangrijk begrip.
Als je wilt, laten we zeggen, een lijst kopiëren, dan doe je zoiets als dit.
Waar je de hele lijst hebt gekopieerd en dit is iets dat je veel zult zien in codebases.
Maar deze regel zegt, hey, ik wil een kopie-gebruikslijst maken om deze Amazon-wagen te kopiëren en het zal gelijk zijn aan
een nieuwe winkelwagen, dus als ik dit nu uitvoer.
Je zult zien dat het originele Amazon-karretje hetzelfde blijft, maar het nieuwe karretje is nu iets anders.
Dit is een snelle tip.
Ze moeten er gewoon aan wennen, maar het is een belangrijk concept, dit idee van kopiëren versus wijzigen van de lijst, en
het is iets dat we in de volgende paar video's wat meer zullen onderzoeken.
Voor nu, neem een pauze en ik zal zien in de volgende.
Doei.