[Sequanux-ml] question sur les listes en python
Rémy HUBSCHER
hubscher.remy at gmail.com
Lun 28 Sep 14:03:43 CEST 2009
Le lundi 28 septembre 2009 à 12:31 +0200, Jonas a écrit :
> Voici un petit bout de python que j'ai trouvé sur wikibook
> http://fr.wikibooks.org/wiki/Exemples_de_scripts_Python
>
> # calcul des nombres premiers inferieurs a N
> #initialisation
> N = 200
> liste = range(2, N) # liste de 2 à N
> nombre = 2
> while (nombre*nombre <= N): # tant que le nb premier < a la
> # racine carree de N
> for i in liste[ liste.index(nombre) + 1: ]: #parcourt la liste avec ce nombre
> if i % nombre == 0: #un multiple du nombre est trouve
> del( liste[ liste.index(i) ] ) # on le raye de la liste
> nombre = liste[liste.index(nombre) + 1] # on prend le nombre
> suivant non raye
>
> print liste #affichage du resultat
>
> Ce que je ne comprend pas c'est cette ligne
> for i in liste[ liste.index(nombre) + 1: ]: #parcourt la liste avec ce nombre
> Plus particulèrement, je ne comprend pas ce qu'il se passe "dans le
> décor" avec ce ':', je sais qu'il y a un slice, mais à part ça ?
> --
> Attention, le reply-to se fait à l'expéditeur, pas à la liste
> Sequanux-ml at sequanux.org
> http://sequanux.org/cgi-bin/mailman/listinfo/sequanux-ml
Tout simplement, à chaque boucle for, on commence un peu plus loin dans
la liste.
liste[x:] veut dire que l'on ne prend pas en compte les x premier indice
de la liste.
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst[2:]
[2, 3, 4, 5, 6, 7, 8, 9]
Voili, voilou
Plus d'informations sur la liste de diffusion Sequanux-ml