17.12.2012 Views

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

Programmation PYTHON - Zenk - Security - Repository

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

80<br />

Éléments du langage<br />

DEUXIÈME PARTIE<br />

update(dic,<br />

**dic)<br />

setdefault(cle,<br />

default)<br />

fromkeys(seq,<br />

default)<br />

Tableau 4–3 Méthodes pour les dictionnaires (suite)<br />

Nom Description Exemple<br />

Update permet de mettre à jour le dictionnaire<br />

avec les éléments du dictionnaire<br />

dic. Pour les clés existantes dans la liste,<br />

les valeurs sont mises à jour, sinon créées.<br />

Le deuxième argument est aussi utilisé<br />

pour mettre à jour les valeurs.<br />

Fonctionne comme get() mais si cle<br />

n’existe pas et default est fourni, le<br />

couple (cle, default) est ajouté à la liste.<br />

Génère un nouveau dictionnaire et y<br />

ajoute les clés fournies dans la séquence<br />

seq. La valeur associée à ces clés est<br />

default si le paramètre est fourni,<br />

None le cas échéant.<br />

À RETENIR Copie légère et copie complète<br />

>>> l = {1: 'a', 2: 'b', 3: 'c'}<br />

>>> l2 = {3: 'ccc', 4: 'd'}<br />

>>> l.update(l2)<br />

>>> l<br />

{1: 'a', 2: 'b', 3: 'ccc', 4:<br />

'd'}<br />

>>> l = {1: 'a', 2: 'b', 3: 'c'}<br />

>>> l.setdefault(4, 'd')<br />

'd'<br />

>>> l<br />

{1: 'a', 2: 'b', 3: 'c', 4: 'd'}<br />

>>> l = {}<br />

>>> l.fromkeys([1, 2, 3], 0)<br />

{1: 0, 2: 0, 3: 0}<br />

Les copies de type shallow sont littéralement des copies légères. Chaque référence aux objets du dictionnaire<br />

est recopiée et les changements des objets modifiables sont donc visibles dans chaque copie originelle<br />

du dictionnaire.<br />

À l’inverse, les copies complètes, notées deepcopy, fabriquent une copie conforme en scrutant et recopiant<br />

récursivement tous les éléments contenus dans les objets modifiables du dictionnaire. Pour la<br />

méthode items, une copie complète est effectuée dans la liste résultante, ce qui n’est pas le cas de<br />

copy.<br />

Nous verrons dans les exercices du chapitre 9 qu’il existe un système générique de copie complète, dans<br />

le module copy, qui offre la possibilité d’implémenter ce mécanisme pour tout type d’objet.<br />

À SAVOIR Les itérateurs<br />

Les itérateurs, qui seront plus largement abordés dans la partie de description de la fonction yield, et<br />

les générateurs, sont des objets qui permettent de parcourir une séquence sans que les éléments qui la<br />

constituent ne soient connus au préalable. Le principe est équivalent à un curseur de données placé sur la<br />

première donnée et qui découvre les éléments au fur et à mesure de l’avancée dans la séquence. Ce<br />

mécanisme permet d’optimiser grandement la vitesse d’exécution pour des cas d’utilisation spécifiques.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!