Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 22-09-2015 13:42:49

Aldou
Invité

Algo en python

Bonjour, s'il vous plait je voudrai savoir en python si une liste est de taille n, est ce que len(L) égal à n ou n+1?
Une deuxième question: lorsqu'on dit for i in range (0,len(L),1) est ce qu'on parcourt la liste de 0 à len(L) ou bien de 0 jusqu'à len(L)+1??
Merci d'avance

#2 22-09-2015 15:16:49

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : Algo en python

Bonjour,

En Python, une liste comme je vais en construire une construite via une boucle for :
L=[]
for i in range(0,n,1):
    L.append(i)
est composée de n éléments, ici de 0 à n-1...
for i in range(0,n,1) peut être remplacé par : for i in range(n)
Le premier paramètre, s'il est omis vaut 0 par défaut.
Le 3e paramètre (le pas), s'il est omis, vaut 1 par défaut

Supposons L=["A",0,"x","#",1]
len(L) renvoie 5.
Donc
for i in range(len(L)) est équivalent à for i in range(5).

Dans une liste, les indices commencent à 0 : pour la liste ci-dessus, len(L) =5, mais les indices (les nos de cases, si tu veux vont donc de 0 à 4.
Si tu comptes de 0 à 4 : 0,1,2,3,4 il y a bien 5 éléments...
En mode console :
>>> L[2]
'x'
parce que tu as demandé contenu dans la case n° 2 et non celui qui est dans la deuxième case...
Exemple inverse, tu cherches quel le n° de la case dans laquelle se trouve "#" :
>>> L.find("#")
3
Réponse : case n° 3, c'est à dire puisqu'on commence au n° 0, la 4e case.

Ça te va ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#3 22-09-2015 18:28:39

Aldou
Invité

Re : Algo en python

Bonsoir, j'ai bien compris tout ce que tu viens de m'expliquer. Mais j'ai encore trouvé dans un autre exemple for i in L?
Dans ce cas est ce qu'on parcours les indices dans une liste ou bien les éléments respectives d'une liste?

#4 22-09-2015 20:12:10

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 943

Re : Algo en python

Salut,

Tu parcours un par un tous les éléments d'une liste...
Pas besoin de te casser la tête pour savoir combien il y en a...

Un for un peu spécial que tu ne connais probablement pas.
L=["A",0,"x","#",1]
for i,element in enumerate(L):
    print (i,element)

avec l'exemple de L donné dans mon post précédent, tu peux voir que tu récupères les indices en même temps que les éléments.
Voilà ce qui sort avec Python 2.7 :
(0, 'A')
(1, 0)
(2, 'x')
(3, '#')
(4, 1)
Et avec Python 3.4
0 A
1 0
2 x
3 #
4 1
à gauche les indices à droite les éléments

Rien à voir avec les listes ni avec  for, mais :
Dans le cas de python 3.4 print est une fonction donc s'é"crit print ()
Ce n'est pas le cas en Python 2.x ,
là, la commande est interprétée comme une demande d'écrire le couple (i,element)...

Le enumerate est pratique il t'évite à devoir gérer un compteur dans boucle for : c'est un mix entre for in range (len(L)): et for element in L:

ok ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#5 22-09-2015 20:21:54

Aldou
Invité

Re : Algo en python

J'ai bien compris maintenant, vos informations me sont vraiment utiles. Merci infiniment Yoshi.

Pied de page des forums