FIX #8: mise en place de __iter__ & items() |TP_3.7|UPDATE dico_ord.py

This commit is contained in:
Fred Z 2018-02-05 15:23:05 +01:00
parent 90e02e0180
commit d1dd323309

View File

@ -86,11 +86,11 @@ class DictionnaireOrdonne:
>>> legumes.values() >>> legumes.values()
[48, 26] [48, 26]
#>>> for nom, qtt in legumes.items(): >>> for nom, qtt in legumes.items():
#... print("{0} ({1})".format(nom, qtt)) ... print("{0} ({1})".format(nom, qtt))
#... ...
#haricot (48) haricot (48)
#carotte (26) carotte (26)
#>>> mots = {'olive': 51, 'identite': 43, 'mercredi': 25, 'prout': 218, 'assiette': 8, 'truc': 26} #>>> mots = {'olive': 51, 'identite': 43, 'mercredi': 25, 'prout': 218, 'assiette': 8, 'truc': 26}
#>>> mots_ordonne = DictionnaireOrdonne(mots) #>>> mots_ordonne = DictionnaireOrdonne(mots)
@ -149,16 +149,8 @@ class DictionnaireOrdonne:
del self._values_list[index_to_del] del self._values_list[index_to_del]
def __iter__(self): def __iter__(self):
""" """Parcours de l'objet, renvoi l'iterateur des cles"""
L'objet doit pouvoir etre parcouru. return iter(self._keys_list)
Quand on ecrit for cle in dictionnaire, on doit parcourir
la liste des cles contenues dans le dictionnaire.
"""
# TODO revoir __iter__ (+iter()) & items()
for label in self._keys_list.__iter__():
yield label
def __getitem__(self, key_to_get): def __getitem__(self, key_to_get):
""" Acces aux crochets pour recuperer une valeur (objet[cle]) """ """ Acces aux crochets pour recuperer une valeur (objet[cle]) """
@ -255,16 +247,9 @@ class DictionnaireOrdonne:
return self.sort(reverse=True) return self.sort(reverse=True)
def items(self): def items(self):
""" """Renvoi un generateur contenant les couples (cle, valeur)"""
La methode values() (renvoyant la liste des valeurs) et for key, val in enumerate(self._keys_list):
items() (renvoyant les couples (cle, valeur)) doivent etre yield (val, self._values_list[key])
mises en œuvre. Le type de retour de ces methodes est laisse
a votre initiative : il peut s'agir d'iterateurs ou de
generateurs (tant qu'on peut les parcourir)
"""
i = 0
while i < len(self._keys_list):
yield (self._keys_list[i], self._values_list[i])
def values(self): def values(self):
""" """