Le module de bibliothèque standard Python le plus utile que tout le monde oublie constamment


Python a beaucoup de bons modules prêts à l'emploi. L'une des plus utiles est les collections . Il contient des "types spécialisés pour la création de conteneurs", qui sont des alternatives au dict , list , set et tuple universel. Ci-dessous, nous examinons trois classes contenues dans le module que la plupart des pythonistes ont rencontrées mais oublient constamment de mettre en pratique.


NamedTuple


Il est difficile de surestimer l'utilité des tuples nommés pour les scientifiques des données. Supposons que vous créez un nouveau modèle, en ajoutant constamment de nouvelles fonctionnalités à la liste, qui prévoient ensuite d'alimenter le cadre d'apprentissage automatique. Avec une augmentation du nombre de caractéristiques, vous commencerez tôt ou tard à vous perdre et à oublier quel indice est responsable de quoi. Pire encore, si des collègues doivent travailler avec votre code: ils peuvent ne rien comprendre du tout.


Quelques lignes seulement peuvent mettre le script en ordre . Voir:


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

Maintenant, au lieu de spécifier des index, vous pouvez utiliser des noms pour accéder aux éléments de ligne, ce qui rend le code beaucoup plus propre et plus simple.


Comptoir


Counter , comme son nom l'indique, compte. Cela semble facile, mais les scientifiques des données doivent continuer à compter constamment , de sorte que l'outil est extrêmement utile dans la pratique.


Il existe plusieurs façons de créer un compteur, mais la plus simple consiste à l'initialiser avec une liste de valeurs:


 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()) 

L'exécution de ce code (qui, soit dit en passant, peut être effectuée en passant l' extrait de code correspondant à pythonanywhere.com/gists/ ), vous verrez:


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

Une liste de tuples dans l'ordre décroissant de la prévalence des valeurs, où le premier élément du tuple est la valeur et le second est la fréquence à laquelle il apparaît dans la liste d'origine. Quelques lignes de code se sont avérées suffisantes pour découvrir que «22» est l'âge le plus courant, et cela se produit 5 fois.


Defaultdict


Un de mes outils préférés dans la bibliothèque standard. DefaultDict - un dictionnaire avec une valeur par défaut pour toute nouvelle clé. Un exemple:


 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) 

Retours:


 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}) 

Lorsque vous travaillez avec un dictionnaire standard, vous devez constamment vérifier si une clé existe et initialiser manuellement les clés inexistantes. Dans l'exemple ci-dessus, pour chaque clé inexistante, il existe déjà une valeur par défaut de 0. Cela vous permet d'écrire du code plus propre et plus clairement .


En plus de l'entier, DefaultDict est souvent utilisé en conjonction avec une liste vide pour commencer à ajouter des éléments sans passe-partout.


Allez au code propre!


Essayez de vous rappeler si vous pouvez appliquer des classes de collections à des tâches que vous avez récemment résolues. Parfois, «redécouvrir» les anciens modules de la bibliothèque standard est plus utile que de maîtriser de nouveaux outils.

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


All Articles