Parcours de listes
        
                        
                                                                                    
                                                                                            enumerate et range Il est indispensable de comprendre les parcours de séquences avec range, enumerate et zip :  Enumerate retourne un générateur qui renvoie des tuples (indice, valeur). Pour s'en convaincre, on peut récupérer l'ensemble de ces tuples avec list()  | 
                                                                                 
                                                                                            
                                                                                            l = [1,2,3]°°°° list(enumerate(l))  | 
                                                                                 
                                                                                            
                                                                                            [(0, 1), (1, 2), (2, 3)]  | 
                                                                                 
                                                                                            
                                                                                            l = [1,2,3] °° for i,v in enumerate([1,2,3]) : °°    print(i,v)  | 
                                                                                 
                                                                                            
                                                                                            0 1 1 2 2 3  | 
                                                                                 
                                                                                            
                                                                                            Range est aussi un générateur qui lui renvoie les nombres compris entre a inclus et b exclus avec un pas de n : range(a,b,n)  Notez que le pas et la valeur intiale sont optionnelle (1 et 0 par défaut respectivement).  | 
                                                                                 
                                                                                            
                                                                                            range(4) == range(0,4,1) Rta:True  | 
                                                                                 
                                                                                            
                                                                                            range(1,4) == range(4) Rta:False  | 
                                                                                 
                                                                                            
                                                                                            list(range(1,100, 10)) Rta: [1, 11, 21, 31, 41, 51, 61, 71, 81, 91]  | 
                                                                                 
                                                                                            
                                                                                            L'utilisation de range pour parcourir les listes peut engendrer des erreurs.  | 
                                                                                 
                                                                                            
                                                                                            %%script python --no-raise-error °° l1 = [7,8,9,90] °°°l2 = [4,5,6,90,3992] °°° for i in range(0, len(l2)):    °°° print(l1[i], l2[i])  | 
                                                                                 
                                                                                            
                                                                                            7 4 8 5 9 6 90 90 °°°Traceback (most recent call last):   File "<stdin>", line 6, in <module> IndexError: list index out of range  | 
                                                                                 
                                                                                            
                                                                                            C'est notamment le cas quand on veux parcourir deux listes de taille différente en même temps.  Dans ce cas soit on s'arrête au minimum des deux listes :  | 
                                                                                 
                                                                                            
                                                                                            l1 = [7,8,9,90]°°° l2 = [4,5,6, 90, 3992]  °°°for i in range(min(len(l1), len(l2))):   °°°  print(l1[i], l2[i])  | 
                                                                                 
                                                                                            
                                                                                            7 4°° 8 5°° 9 6°° 90 90 el resultado es como dos listas  | 
                                                                                 
                                                                                            
                                                                                            Soit on utilise la fonction zip :  | 
                                                                                 
                                                                                            
                                                                                            l1 = [7,8,9,90] l2 = [4,5,6, 90, 3992] for e1,e2 in zip(l1,l2):     print(e1,e2)  | 
                                                                                 
                                                                                            
                                                                                            7 4°° 8 5 °°°9 6 °°°90 90  | 
                                                                                 
                                                                                            
                                                                                            list(zip(l1,l2))  | 
                                                                                 
                                                                                            
                                                                                            [(7, 4), (8, 5), (9, 6), (90, 90)]  | 
                                                                                 
                                                                         
                             
 |