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.

76<br />

Éléments du langage<br />

DEUXIÈME PARTIE<br />

La primitive hash permet de renvoyer la valeur retournée par méthode __hash__ de<br />

l’objet et de provoquer une erreur si l’objet n’en a pas, c’est-à-dire s’il n’est pas constant.<br />

Manipulation de hash<br />

Cette restriction permet à set d’être beaucoup plus performant qu’une séquence<br />

classique pour certains opérateurs, comme in, car il construit en mémoire un index<br />

des éléments.<br />

Opérateur in sur set et list<br />

Les méthodes disponibles avec set sont celles des séquences.<br />

frozenset est un sous-type de set qui est immuable et permet de figer le contenu de<br />

la séquence et d’offrir de nouvelles méthodes de comparaisons puissantes et rapides.<br />

Les mappings<br />

>>> hash('some string')<br />

-604248944<br />

>>> hash('some string')<br />

-604248944<br />

>>> hash(12)<br />

12<br />

>>> hash([1, 2])<br />

Traceback (most recent call last):<br />

File "", line 1, in <br />

TypeError: unhashable type: 'list'<br />

>>> 1 in [1, 2, 3] # complexité O(n*n)<br />

True<br />

>>> 1 in set([1, 2, 3]) # complexité O(n)<br />

True<br />

Le mapping est une collection d’éléments qui sont identifiés par des clés uniques. Il<br />

n’y a donc dans ce cas aucune notion d’ordre comme dans les listes. La notation est la<br />

même que pour les séquences, et l’élément e du mapping map associé à la clé cle se<br />

récupère par la commande :<br />

e = map[cle]<br />

On peut utiliser les mêmes primitives que pour les séquences sur un mapping, soit<br />

max, min et len. En réalité, ces opérations s’appliqueront sur la séquence équivalente à<br />

l’ensemble des clés qui composent le mapping.

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

Saved successfully!

Ooh no, something went wrong!