Das nützlichste Python-Standardbibliotheksmodul, das jeder ständig vergisst


Python bietet eine Menge großartiger Module, die sofort einsatzbereit sind. Eine der nützlichsten ist Sammlungen . Es enthält "spezialisierte Typen zum Erstellen von Containern", die Alternativen zu Universal Dict , List , Set und Tuple darstellen . Unten sehen wir uns drei Klassen an, die in dem Modul enthalten sind, auf das die meisten Pythonisten gestoßen sind, die aber ständig vergessen, sie in die Praxis umzusetzen.


NamedTuple


Es ist schwierig, den Nutzen benannter Tupel für Datenwissenschaftler zu überschätzen. Angenommen, Sie erstellen ein neues Modell und fügen der Liste ständig neue Features hinzu, die dann das Framework für maschinelles Lernen unterstützen sollen. Mit zunehmender Anzahl von Merkmalen werden Sie früher oder später verwirrt und vergessen, welcher Index für was verantwortlich ist. Schlimmer noch, wenn Kollegen mit Ihrem Code arbeiten müssen: Sie verstehen möglicherweise überhaupt nichts.


Nur ein paar Zeilen können das Skript in Ordnung bringen . Siehe:


from collections import namedtuple Features = namedtuple('Features', ['age', 'gender', 'name']) row = Features(age=22, gender='male', name='Alex') print(row.age) 

Anstatt Indizes anzugeben, können Sie jetzt Namen für den Zugriff auf Werbebuchungen verwenden, wodurch der Code viel übersichtlicher und einfacher wird.


Zähler


Zähler , wie der Name schon sagt, zählt. Es klingt einfach, aber Datenwissenschaftler müssen ständig zählen , daher ist das Tool in der Praxis äußerst nützlich.


Es gibt verschiedene Möglichkeiten, einen Zähler zu erstellen. Am einfachsten ist es jedoch, ihn mit einer Liste von Werten zu initialisieren:


 from collections import Counter ages = [22, 22, 25, 25, 30, 24, 26, 24, 35, 45, 52, 22, 22, 22, 25, 16, 11, 15, 40, 30] value_counts = Counter(ages) print(value_counts.most_common()) 

Wenn Sie diesen Code ausführen (was Sie übrigens tun können, indem Sie das entsprechende Snippet an pythonanywhere.com/gists/ übergeben ), wird Folgendes angezeigt :


 [(22, 5), (25, 3), (24, 2), (30, 2), (35, 1), (40, 1), (11, 1), (45, 1), (15, 1), (16, 1), (52, 1), (26, 1)] 

Eine Liste von Tupeln in absteigender Reihenfolge der Prävalenz von Werten, wobei das erste Element des Tupels der Wert ist und das zweite, wie oft es in der ursprünglichen Liste erscheint. Es stellte sich heraus, dass ein paar Codezeilen ausreichen, um herauszufinden, dass „22“ das häufigste Alter ist und 5-mal vorkommt.


Defaultdict


Eines meiner Lieblingswerkzeuge in der Standardbibliothek. DefaultDict - Ein Wörterbuch mit einem Standardwert für einen neuen Schlüssel. Ein Beispiel:


 from collections import defaultdict my_default_dict = defaultdict(int) for letter in 'the red fox ran as fast as it could': my_default_dict[letter] += 1 print(my_default_dict) 

Rückgabe:


 defaultdict(<type 'int'>, {'a': 4, ' ': 8, 'c': 1, 'e': 2, 'd': 2, 'f': 2, 'i': 1, 'h': 1, 'l': 1, 'o': 2, 'n': 1, 's': 3, 'r': 2, 'u': 1, 't': 3, 'x': 1}) 

Wenn Sie mit einem regulären Wörterbuch arbeiten, müssen Sie ständig prüfen, ob ein Schlüssel vorhanden ist, und nicht vorhandene Schlüssel manuell initialisieren. Im obigen Beispiel gibt es für jeden nicht vorhandenen Schlüssel bereits einen Standardwert von 0. Auf diese Weise können Sie Code klarer und klarer schreiben.


Zusätzlich zur Ganzzahl wird DefaultDict häufig in Verbindung mit einer leeren Liste verwendet, um Elemente ohne Boilerplate hinzuzufügen.


Gehe zum sauberen Code!


Versuchen Sie sich zu erinnern, ob Sie Klassen aus Sammlungen auf Aufgaben anwenden können, die Sie kürzlich gelöst haben. Manchmal ist es sinnvoller, die alten Module der Standardbibliothek wiederzuentdecken, als neue Werkzeuge zu beherrschen.

Source: https://habr.com/ru/post/de478934/


All Articles