Willkommen zurück.
Fahren wir jetzt mit Listen fort.
Bisher haben wir die eckigen Klammern schon gesehen, oder?
Wir haben sie bei der Arbeit mit Strings gesehen und genau wie Strings sind Listen ziemlich ähnlich, da wir
Listen-Slicing verwenden können.
Wenn Sie sich erinnern, hatten wir beim String-Slicing Dinge wie hallo und konnten in einen String zuweisen, sagen wir, einen variablen String,
und wir konnten einen String erstellen und dann schneiden.
Also mach sowas.
Wo wir den Start hatten, den Stopp und dann den Schritt durch, so dass wir mit dem Index Null begannen und mit dem Index
von zwei enden.
Und dann gehen Sie einen nach dem anderen vor, also steht uns auch das Aufteilen von Listen zur Verfügung, also lassen Sie uns diesen Warenkorb etwas
größer machen und Sie können die Dinge tatsächlich sauberer machen, indem Sie ihn auf diese Weise formatieren.
Alles klar, was sollen wir also in unseren Warenkorb legen?
Wir werden auch ein paar Spielsachen hinzufügen und dann weißt du was, Amazon macht jetzt Lebensmittel.
Also fügen wir einige köstliche Trauben hinzu.
Fantastisch.
Nehmen wir an, ich wollte jeden einzelnen Artikel in den Warenkorb legen, während wir einfach dies tun.
Und wir haben unsere gesamte Liste, aber lassen Sie uns ein bisschen Listen-Slicing verwenden, sagen wir, ich möchte vom ersten Element
zum zweiten Element greifen, wenn ich auf Ausführen klicke.
Ich bekomme Notizbücher und Sonnenbrillen.
Vielleicht möchte ich den ganzen Weg bis zum Ende gehen, aber jeden zweiten überspringen.
Ich bekomme Notizbücher und Spielzeug.
Wir haben null angefangen.
Wir steigen hinüber zu Spielzeug und wir steigen hinüber und wir sind fertig.
Fantastisch.
Und das haben wir schon beim Sprechen mit Streichern gesehen.
OK, aber hier wird es interessant.
Denken Sie daran, wie ich sagte, dass Strings unveränderlich sind.
Das heißt, wir können sie nicht ändern.
Rechts.
Und wir haben darüber geredet, als wir eine Saite wie hallo hatten, ich konnte kein Gret null gleich, sagen wir
Z.
Ich würde hier einen Fehler bekommen.
Ich erhalte, dass das SDR-Objekt die Elementzuweisung nicht unterstützt.
Es ist unveränderlich.
Aber das Interessante an Listen ist, dass sie veränderbar sind.
Also, wenn ich meinen Amazon-Warenkorb ändere.
Und sag das, weißt du was, ich möchte eigentlich keine Notebooks, also schnappe ich mir
den ersten Gegenstand, der ist Notebooks und statt Notebooks was wollen wir?
Wir sagen, wir wollen einen neuen Laptop.
Es ist ein großes Upgrade.
Wenn ich diesen Amazon-Warenkorb ausdrucke.
Sehen Sie sich das an, ich kann diese Liste ändern.
Und es hat mir in diesem Sinne keinen Hauch gegeben, Listen sind unveränderlich, wir ersetzen einfach im Speicherregal unserer Computer-Notebooks
und ich sage, hey, ändere es auf Laptop, und sie lassen uns das tun.
Okay, das ist also toll.
Aber lass uns hier etwas versuchen.
Was ist, wenn ich hier und im Amazon-Warenkorb einen weiteren Druck erstelle, verwende ich List-Slicing, um beispielsweise einen Artikel vom
Index 1 bis zum Index 3 zu erhalten.
Lassen Sie uns das ausführen und sehen, was passiert.
Versuchen Sie es und erraten Sie.
Haben Sie das erwartet?
Lassen Sie uns diesen Code durchgehen, wenn wir bei Zeile zehn angelangt sind, greifen wir zum Amazon-Warenkorb, der mit einem Laptop
aktualisiert wurde, und ich greife zu Artikel eins.
Zwei, drei, das ist eine Sonnenbrille.
Zu Spielzeug, also null eins zwei, und dann hören wir bei drei auf.
Um dies verständlicher zu machen, fangen wir hier mit Null an.
Damit wir sehen, dass der Laptop geändert wurde.
Und dann hier im zweiten, in Zeile 11, drucken wir den Amazon-Warenkorb.
Aber Moment mal, diese Liste hat sich nicht geändert, und das liegt daran, dass wir beim Listen-Slicing eine neue
Liste erstellen, eine neue Kopie dieser Liste.
Hier erstellen wir also eine völlig neue Liste, damit ich sie tatsächlich einer Variablen zuweisen kann.
Der neue Warenkorb wird der Amazon-Warenkorb.
Und lassen Sie uns hier einfach dasselbe tun.
Und New Kaat ist eine ganz neue Liste für sich, ich könnte eine neue Karte ändern, sagen wir Null in, sagen wir
Kaugummi.
Und wenn ich das ausdrucke.
Sie sehen, dass ich zwei neue separate Listen habe, aber eine Liste ist veränderbar, weil ich
jederzeit ändern kann, was im Index ist, und jedes Mal, wenn wir Listen-Slicing durchführen, erstellen wir eine neue Kopie dieser Liste.
Aber ich habe hier eine knifflige Frage an dich, was passiert, wenn ich das einfach mache?
Wenn ich das laufe.
Hmm.
Hast du das gesehen?
Anstatt meine Liste aufzuschneiden, sagte ich einfach, dass die neue Karte dem Amazon-Warenkorb entsprechen wird.
Und ich habe einen neuen KAAT-Index von Null auf Gump geändert, aber jetzt wurde auch mein Amazon-Warenkorb geändert.
Warum ist das so?
Und das ist eine etwas knifflige Frage, die Ihnen in einem Vorstellungsgespräch begegnen könnte.
Der Grund ist, dass die Art und Weise, wie ich es gemacht habe, im Moment bedeutet, dass die neue Karte der
Amazon-Karte entspricht.
Und was bedeutet Amazon Warenkorb?
Nun, Amazon Cart Points irgendwo im Speicher unserer Maschinen, die sagen, hey, das ist Amazon
Cart.
Also weil wir hier nicht die Liste kopieren.
Stattdessen sagen wir nur, hey, der Wert der neuen Karte ist das, was sich im Speicher von Amazon Cart befindet.
Wir ändern jetzt, wenn wir Nikhat modifizieren, einfach den Amazon-Warenkorb von hier aus zurück.
Dies ist also ein wichtiges Konzept.
Wenn Sie, sagen wir, eine Liste kopieren möchten, dann tun Sie so etwas.
Wo Sie die gesamte Liste kopiert haben, und dies ist etwas, das Sie häufig in Codebasen sehen werden.
Aber diese Zeile sagt, hey, ich möchte eine Kopie der Liste erstellen,
um diesen Amazon-Warenkorb zu kopieren.
Sie werden sehen, dass der ursprüngliche Amazon-Warenkorb gleich geblieben ist, aber der neue Warenkorb ist jetzt etwas anderes.
Dies ist ein schnelles Problem.
Sie müssen sich nur daran gewöhnen, aber es ist ein wichtiges Konzept, diese Idee des Kopierens oder Modifizierens der Liste,
und wir werden uns in den nächsten Videos ein wenig mehr damit befassen.
Mach erstmal eine Pause und ich schau im nächsten mal nach.
Wiedersehen.