[Jose]-Hallo und willkommen zurück.
In diesem Video geht es um die Kartenfunktion.
Im letzten Video haben wir kurz erwähnt, wann Sie
Filter und wann Sie Generator-Con comprehensions verwenden würden.
Ich wollte nur kurz sagen, "dass Sie den Filter verwenden
werden, "wenn Sie mit Leuten programmieren, die noch nicht so
lange in Python programmieren. Zum Beispiel Programmierer aus
anderen Programmiersprachen,
oder wenn Ihr Projekt mehrere Programmiersprachen
umfasst.
Python ist eine der wenigen Programmiersprachen
mit einer solchen Syntax.
Wenn Sie also mit vielen Programmiersprachen
arbeiten, ist es vielleicht sinnvoll, die
Filterfunktion zu verwenden, damit alles einheitlich bleibt.
Verwenden Sie
die Filterfunktion für alle Sprachen, die Sie verwenden.
Außerdem werden Sie die Filterfunktion
verwenden, wenn Sie bereits eine Funktion definiert
haben, und Sie müssen keine erstellen.
Auf diese Weise kann es ein bisschen schneller gehen.
Schließlich gibt es auch etwas zu dieser Variable zu sagen,
die wir hier in diesem Verständnis erstellen.
Diese Variable ist ziemlich sinnlos, daher spricht
einiges dafür, diese Variable hier nicht zu erstellen.
Es liegt an Ihnen, für welche Sie sich
entscheiden, aber ich würde sagen, dass die wichtigste Entscheidungshilfe
darin besteht, ob Sie mit anderen Leuten
programmieren, die Filterfunktionen anstelle
von Comprehensions mögen.
Wenn Sie nur mit Python programmieren,
verwenden Sie Comprehensions, und wenn sie es nicht
mögen, bringen Sie sie dazu, es zu mögen, denn es wird im Allgemeinen besser sein.
Okay, das reicht jetzt.
Lassen Sie uns über die Kartenfunktion sprechen.
Die map-Funktion wird verwendet, um eine
iterable zu nehmen und eine neue iterable auszugeben,
bei der jedes Element gemäß einer Funktion geändert wurde.
Nehmen wir zum Beispiel diese Karte hier.
Friends_lower wird zu map(lambda x: x. niedriger, von Freunden).
Wiederum sehr ähnlich wie die Filterfunktion.
Es nimmt auch eine Funktion des
Starts, die etwas zurückgibt und etwas
als Barometer nimmt, und was es nimmt,
ist jedes der Elemente dieser iterable hier.
Die erste lautet also Rolph und gibt
Rolph in Kleinbuchstaben zurück.
Dann nimmt es Jose und gibt alles
in Kleinbuchstaben wieder usw.
Aber er erzeugt einen Generator.
Wenn Sie also zum ersten Mal "next" aufrufen, erhalten
Sie Rolph, und zwar in Kleinbuchstaben.
Das sollten wir tun.
Und wie Sie sehen können, erhalten
Sie Rolph, alles in Kleinbuchstaben.
Dies ist sehr identisch mit der Liste, die Sie hier finden.
Friend lower für friend in friends, und das
ist natürlich identisch mit
diesem friends_lower-Generator-Verständnis,
etwa so.
Welche sollten Sie verwenden?
Diese, die Generator-Verständnis, es sei denn, Sie
müssen sie alle in einer Liste sein,
dann können Sie diese Liste Verständnis zu tun.
Wann sollten Sie die Karte verwenden?
Wie ich schon sagte, wenn die Leute in Ihrem Team,
die Leute, mit denen Sie
arbeiten, daran gewöhnt sind, map zu verwenden, das in anderen Programmiersprachen
sehr beliebt ist, oder wenn Sie gleichzeitig
mit anderen Programmiersprachen arbeiten und alles konsistent
halten wollen, oder wenn Sie denken, dass es lesbarer
ist, weil Sie einige der Funktionen, die Sie bereits
definiert haben, verwenden können, ohne eine neue Lambda-Funktion
erstellen zu müssen.
Hier ist ein Beispiel für einen anderen Zeitpunkt,
an dem Sie map anstelle von filter verwenden können.
Nehmen wir an, wir haben eine Klasse User:, die eine init-Methode
definiert und einen Benutzernamen und ein Passwort
enthält.
Und dann gibt es noch eine Unterrichtsmethode,
die von _dict stammt.
Bei einem Wörterbuch mit Daten wird also
ein Benutzerobjekt zurückgegeben.
Es werden also z.B. Cls der Daten Benutzername
und Passwort zurückgegeben.
Ja.
Jetzt haben Sie dies hier in der Benutzerklasse definiert, und da
Sie eine Liste von Benutzern wie diese hier haben, werde ich sie aus meinen
Notizen kopieren, nur damit ich Sie
nicht langweile, indem ich sie abtippe.
Du hast Rolf und tecladoisawesome, und youaretoo
ist das Passwort.
Angenommen, Sie haben diese from_dict-Funktion
hier, und Sie wollten eine Liste von Benutzerobjekten aus
diesen Wörterbüchern erstellen, könnten
Sie etwas wie folgt tun.
Und das ist der Benutzer. from_dict(user) for, Entschuldigung,
das sollte übrigens users list sein,
meine Entschuldigung, for user in users,
und das wird gut sein.
Aber ich finde, dass eine Karte besser lesbar sein könnte.
Es ist auch ein bisschen kürzer, aber das ist nebensächlich.
Ich denke nur, dass dies hier besser lesbar ist, weil man weiß,
von wo aus man es aufruft. dict-Funktion
für jedes Element in dieser Iterable.
Beim Listenverständnis hingegen muss
man sie lesen und diese neue Variable erstellen,
die nur für die Iteration und für nichts anderes verwendet
wird, und man ruft diese Funktion hier auf, ich
weiß nicht, ich habe einfach das Gefühl,
dass die Map in diesem Fall etwas besser lesbar ist.
Denken Sie also daran, wenn es Ihnen auch
so geht, dass eine Karte manchmal die
bessere Wahl sein kann als eine Liste.
Und das ist nur ein Beispiel.
So, das war's für dieses Video. Ich hoffe,
Sie haben etwas über die Kartenfunktion gelernt,
und wir sehen uns im nächsten Video wieder.