[Introduction à Python3 Jour 10] Chapitre 5 Boîte cosmétique de Py: modules, packages, programmes (5.4-5.7)

5.5 Bibliothèque standard Python

--Python a une grande bibliothèque standard de modules qui font beaucoup de "travail utile".

5.5.1 Gérer les clés inexistantes avec setdefault () et defaultdict ()

--Une exception est générée lors de la tentative d'accès à un dictionnaire avec une clé qui n'existe pas. Vous pouvez éviter les exceptions en utilisant la fonction get () du dictionnaire pour renvoyer la valeur par défaut si la clé n'existe pas.


>>> periodic_table={"Hydrogen":1,"Helium":2}
>>> print(periodic_table)
{'Hydrogen': 1, 'Helium': 2}
#Si la clé n'est pas dans le dictionnaire, elle sera ajoutée avec la nouvelle valeur.
>>> carbon=periodic_table.setdefault("Carbon",12)
>>> carbon
12
#Tenter d'attribuer une autre valeur par défaut à une clé existante renverra la valeur d'origine et ne changera pas le dictionnaire.
>>> helium=periodic_table.setdefault("Helium",457)
>>> helium
2
>>> print(periodic_table)
{'Hydrogen': 1, 'Helium': 2, 'Carbon': 12}


#Importez defaultdict à partir des collections de modules.
>>> from collections import defaultdict
#Valeur par défaut pour les clés inexistantes(int)Est réglé.
>>> periodic_table=defaultdict(int)
>>> periodic_table["Hydrogen"]=1
#Une valeur par défaut est renvoyée pour une clé qui n'existe pas.
>>> periodic_table["Lead"]
0
>>> periodic_table
defaultdict(<class 'int'>, {'Hydrogen': 1, 'Lead': 0})


#Importer defaultdict à partir des collections de modules
>>> from collections import defaultdict
>>> 
>>> def no_idea():
...     return "Huh?"
... 
>>> bestiary = defaultdict(no_idea)
>>> bestiary["a"]= "A"
>>> bestiary["b"]= "B"
>>> bestiary["a"]
'A'
>>> bestiary["b"]
'B'

#Si vous entrez une clé qui n'existe pas, la fonction spécifiée par l'argument de defaultdict est appelée et la valeur est renvoyée.
>>> bestiary["c"]
'Huh?'
>>> bestiary["v"]
'Huh?'

#defaultdict()Définir la fonction de création par défaut dans l'appel
>>> bestiary=defaultdict(lambda:"Huh?")
>>> bestiary["E"]
'Huh?'

#int peut être un moyen de créer votre propre compteur.
>>> from collections import defaultdict
>>> food_counter=defaultdict(int)
>>> for food in ["spam","spam","eggs","spam"]:
...     food_counter[food]+=1
... 
>>> for food,count in food_counter.items():
...     print(food,count)
... 
spam 3
eggs 1

5.5.2 Calcul du nombre d'éléments par Counter ()


>>> breakfast=["spam","spam","eggs","spam"]
>>> breakfast_counter=Counter(breakfast)
>>> breakfast_counter
Counter({'spam': 3, 'eggs': 1})
#most_common()La fonction renvoie tous les éléments dans l'ordre décroissant.
>>> breakfast_counter.most_common()
[('spam', 3), ('eggs', 1)]
#most_common()Si un entier est spécifié comme argument, la fonction compte à partir du haut et affiche le nombre.
>>> breakfast_counter.most_common(1)
[('spam', 3)]
>>> breakfast_counter
Counter({'spam': 3, 'eggs': 1})

>>> lunch=["eggs","eggs","bacon"]
>>> lunch_counter=Counter(lunch)
>>> lunch_counter
Counter({'eggs': 2, 'bacon': 1})
#Combiner les compteurs
>>> lunch_counter+breakfast_counter
Counter({'eggs': 3, 'spam': 3, 'bacon': 1})
#Différence de compteur Articles qui sont utilisés pour le déjeuner mais pas pour le petit-déjeuner.
>>> lunch_counter-breakfast_counter
Counter({'eggs': 1, 'bacon': 1})
#Différence de comptoir Ce qui est utilisé au petit déjeuner mais pas au déjeuner.
>>> breakfast_counter-lunch_counter
Counter({'spam': 3})
#Opérateur de l'ensemble de produits Le nombre commun est 1.
>>> breakfast_counter & lunch_counter
Counter({'eggs': 1})
#Opérateur d'ensemble de somme: utilisez la valeur de compteur la plus grande.
>>> breakfast_counter | lunch_counter
Counter({'spam': 3, 'eggs': 2, 'bacon': 1})

5.5.3 Tri de l'ordre des clés par OrderdDict ()

--OrderedDict () retourne les clés de l'itérateur dans le même ordre.


>>> quotes={
...     "M":"A",
...     "L":"O",
...     "C":"N",
...     }
>>> for s in quotes:
...     print(s)
... 
M
L
C

>>> from collections import OrderedDict
>>> quotes=OrderedDict([
...     ("M","A"),
...     ("L","C"),
...     ("C","N"),
...     ])
>>> 

5.5.4 Pile + File d'attente = Deck

--duque est une file d'attente à deux extrémités qui a à la fois des fonctions de pile et de file d'attente, et vous pouvez ajouter ou supprimer des éléments à chaque extrémité de la séquence.


>>> def palindrome(word):
...     from collections import deque
...     dq=deque(word)
...     while len(dq)>1:
#popleft()Supprime l'élément le plus à gauche et renvoie, pop()Est une fonction qui supprime l'élément le plus à droite et le renvoie.
...         if dq.popleft()!=dq.pop():
...             return False
...     return True
... 
>>> palindrome("a")
True
>>> palindrome(" ")
True
>>> palindrome("racecar")
True
>>> palindrome("halibut")
False

#Il est plus facile de comparer les chaînes dans l'ordre inverse.
>>> def another_palindrome(word):
...     return word==word[::-1]
... 
>>> another_palindrome("racecar")
True
>>> another_palindrome("halibut")
False

5.5.5 Itération de la structure du code avec itertools

--itertools contient des fonctions itertool à des fins spéciales.


#chain()Traite l'intégralité de l'argument comme s'il s'agissait d'un itérable et l'itère.
>>> import itertools
>>> for item in itertools.chain([1,2],["a","b"]):
...     print(item)
... 
1
2
a
b

#cycle()Est un itérateur infini qui renvoie cycliquement des éléments à partir de ses arguments.
>>> import itertools
>>> for item in itertools.cycle([1,2]):
...     print(item)
... 
1
2
1
2
1
2
1
2
1
2
1
2
1
2

#accumulate()Calcule la valeur des éléments combinés en un seul. La valeur par défaut est de calculer la somme.
>>> import itertools
>>> for item in itertools.accumulate([1,2,3,4]):
...     print(item)
... 
1
3
6
10

##accumulate()Accepte une fonction comme deuxième argument, et cet argument est utilisé à la place de l'addition.
>>> import itertools
>>> def multiply(a,b):
...     return a*b
... 
>>> for item in itertools.accumulate([1,2,3,4],multiply):
...     print(item)
... 
1
2
6
24

5.5.6 Bel affichage par pprint ()

--print () essaie d'aligner les éléments pour la lisibilité.


>>> from pprint import pprint
>>> q=OrderedDict([
...     ("Moe","A wise guy,huh?"),
...     ("Larry","Ow!"),
...     ("Curly","Nuyk nyuk!"),
...     ])
>>> 
#Continuez à afficher.
>>> print(q)
OrderedDict([('Moe', 'A wise guy,huh?'), ('Larry', 'Ow!'), ('Curly', 'Nuyk nyuk!')])

#Alignez et affichez les éléments.
>>> pprint(q)
OrderedDict([('Moe', 'A wise guy,huh?'),
             ('Larry', 'Ow!'),
             ('Curly', 'Nuyk nyuk!')])


5.7 Revoir l'affectation

5-1 Créez un fichier appelé zoo.py et affichez-y la chaîne de caractères Open 9-5 tous les jours. Définissons la fonction hours (). Ensuite, importons le module zoo avec l'interpréteur interactif et appelons sa fonction hours ().

zop.py



def hours():
    print("Open 9-5 daily")

résultat



>>> import zoo
>>> zoo.hours()
Open 9-5 daily

5-2 Importez le module zoo avec le nom ménagerie dans l'interpréteur interactif et appelez sa fonction hours ().


#Importer le module zoo en tant que ménagerie
>>> import zoo as menagerie
>>> menagerie.hours()
Open 9-5 daily

5-3 Restons dans l'interpréteur interactif et importons et appelons directement la fonction hours () de zoo.


>>> from zoo import hours
>>> hours()
Open 9-5 daily

5-4 heures () Importez la fonction avec les informations de nom et appelez-la.


>>> from zoo import hours as info
>>> info()
Open 9-5 daily

5-5 Créez un dictionnaire appelé plain en utilisant les paires clé / valeur "a": 1, "b": 2, "c": 3 et affichez le contenu.


>>> plain={"a":1,"b":2,"c":3}
>>> plain
{'a': 1, 'b': 2, 'c': 3}

5-6 Créez un OrderedDict nommé fancy à partir de la même paire que 5-5 ci-dessus et affichez son contenu. A-t-il été affiché dans le même ordre que brut?


>>> from collections import OrderedDict
>>> fancy=OrderedDict([("a",1),("b",2),("c",3)])
>>> fancy
OrderedDict([('a', 1), ('b', 2), ('c', 3)])


5-7 Créez un dict par défaut nommé dict_of_lists et passez l'argument list. Ensuite, créez une liste appelée dict_of_lists ["a"] en une seule opération et ajoutez la valeur "quelque chose pour un". Enfin, affichons dict_of_lists ["a"].


>>> from collections import defaultdict
>>> dict_of_lists=defaultdict(list)
>>> dict_of_lists["a"]=["something for a"]
>>> dict_of_lists["a"]
['something for a']

Impressions

Enfin, nous sommes entrés dans la seconde moitié du match. J'ai commencé à faire le chapitre 6, mais le concept d'objets et de classes est apparu. Je continuerai à faire de mon mieux demain.

Les références

"Introduction à Python3 par Bill Lubanovic (publié par O'Reilly Japon)"

Recommended Posts

[Introduction à Python3 Jour 10] Chapitre 5 Boîte cosmétique de Py: modules, packages, programmes (5.4-5.7)
[Introduction à Python3 Jour 9] Chapitre 5 Boîte cosmétique de Py: modules, packages, programmes (5.1-5.4)
[Introduction à Python3 Jour 13] Chapitre 7 Chaînes de caractères (7.1-7.1.1.1)
[Introduction à Python3 Jour 14] Chapitre 7 Chaînes de caractères (7.1.1.1 à 7.1.1.4)
[Introduction à Python3 Jour 15] Chapitre 7 Chaînes de caractères (7.1.2-7.1.2.2)
[Introduction à Python3 Day 21] Chapitre 10 Système (10.1 à 10.5)
[Introduction à Python3 Jour 19] Chapitre 8 Destinations de données (8.4-8.5)
[Introduction à Python3 Day 18] Chapitre 8 Destinations de données (8.3.6.2 à 8.3.6.3)
[Introduction à Python3 Jour 12] Chapitre 6 Objets et classes (6.3-6.15)
[Introduction à Python3, jour 22] Chapitre 11 Traitement parallèle et mise en réseau (11.1 à 11.3)
[Introduction à Python3 Jour 11] Chapitre 6 Objets et classes (6.1-6.2)
[Introduction à Python3, Jour 23] Chapitre 12 Devenir un Paisonista (12.1 à 12.6)
[Introduction à Python3 Jour 20] Chapitre 9 Démêler le Web (9.1-9.4)
[Introduction à Python3 Jour 8] Chapitre 4 Py Skin: Structure du code (4.1-4.13)
[Introduction à Python3 Jour 3] Chapitre 2 Composants Py: valeurs numériques, chaînes de caractères, variables (2.2 à 2.3.6)
[Introduction à Python3 Jour 2] Chapitre 2 Composants Py: valeurs numériques, chaînes de caractères, variables (2.1)
[Introduction à Python3 Jour 4] Chapitre 2 Composants Py: valeurs numériques, chaînes de caractères, variables (2.3.7 à 2.4)
[Introduction à Python3 Jour 1] Programmation et Python
[Introduction à Python3 Jour 7] Chapitre 3 Outils Py: Listes, Taples, Dictionnaires, Ensembles (3.3-3.8)
[Introduction à Python3 Jour 5] Chapitre 3 Outils Py: listes, taples, dictionnaires, ensembles (3.1-3.2.6)
[Introduction à Python3 Jour 6] Chapitre 3 Liste des outils Py, tapple, dictionnaire, set (3.2.7-3.2.19)
Introduction à la vérification de l'efficacité Chapitre 1 écrit en Python
Introduction à la vérification de l'efficacité Chapitre 3 écrit en Python
Introduction à la vérification de l'efficacité Chapitre 2 écrit en Python
Comprendre le développement de Python pour Pepper. -Introduction à Python Box-
Paquets et modules Python
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
Introduction au langage Python
Introduction à OpenCV (python) - (2)
[Chapitre 3] Introduction à Python avec 100 coups de traitement du langage
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
[Livre technique] Introduction à l'analyse de données avec Python -1 Chapitre Introduction-
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
Introduction au module de papier électronique
Apprenez à connaître les packages et les modules Python
Introduction à la communication série [Python]
[Introduction à Python] <liste> [modifier le 22/02/2020]
Introduction à Python (version Python APG4b)
Une introduction à la programmation Python
Introduction à Python pour, pendant
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 10 Introduction à Cupy
J'ai lu "Renforcer l'apprentissage avec Python de l'introduction à la pratique" Chapitre 1
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer Chapitre 9 Introduction à scikit-learn
J'ai lu "Renforcer l'apprentissage avec Python de l'introduction à la pratique" Chapitre 2
[Présentation de l'application Udemy Python3 +] 58. Lambda
[Présentation de l'application Udemy Python3 +] 31. Commentaire
Introduction à la bibliothèque de calcul numérique Python NumPy
Entraine toi! !! Introduction au type Python (conseils de type)
[Introduction à Python] <numpy ndarray> [modifier le 22/02/2020]
[Présentation de l'application Udemy Python3 +] 57. Décorateur
Introduction à Python Hands On Partie 1
[Introduction à Python] Comment analyser JSON
[Présentation de l'application Udemy Python3 +] 56. Clôture
Introduction à Protobuf-c (langage C ⇔ Python)
[Présentation de l'application Udemy Python3 +] 59. Générateur
Cours de base Python (14 modules et packages)
[Introduction à Python] Utilisons les pandas
[Introduction à Python] Utilisons les pandas
[Introduction à l'application Udemy Python3 +] Résumé
Introduction à l'analyse d'image opencv python