--Python a une grande bibliothèque standard de modules qui font beaucoup de "travail utile".
--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
>>> 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})
--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"),
... ])
>>>
--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
--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!')])
zop.py
def hours():
print("Open 9-5 daily")
résultat
>>> import zoo
>>> zoo.hours()
Open 9-5 daily
#Importer le module zoo en tant que ménagerie
>>> import zoo as menagerie
>>> menagerie.hours()
Open 9-5 daily
>>> from zoo import hours
>>> hours()
Open 9-5 daily
>>> from zoo import hours as info
>>> info()
Open 9-5 daily
>>> plain={"a":1,"b":2,"c":3}
>>> plain
{'a': 1, 'b': 2, 'c': 3}
>>> from collections import OrderedDict
>>> fancy=OrderedDict([("a",1),("b",2),("c",3)])
>>> fancy
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
>>> from collections import defaultdict
>>> dict_of_lists=defaultdict(list)
>>> dict_of_lists["a"]=["something for a"]
>>> dict_of_lists["a"]
['something for a']
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.
"Introduction à Python3 par Bill Lubanovic (publié par O'Reilly Japon)"
Recommended Posts