[PYTHON] Récupérer position dans liste [Résolu/Fermé]

erickvand - 6 mai 2009 à 11:58 - Dernière réponse :  m
- 21 mars 2017 à 14:40
Bonjour,

J'aimerai savoir comment récupérer la position d'un élément dans une liste avec Python ?

Par exemple, si j'ai une liste ['lundi', 'mardi', 'mercredi'], je voudrais lui demander : donne-moi la position de mardi dans la liste (et logiquement, il devrait me retourner 1).
Comment donc coder ceci ?

Merci d'avance.
Afficher la suite 

7 réponses

Thorolf 3 Messages postés lundi 31 août 2009Date d'inscription 20 décembre 2010 Dernière intervention - 31 août 2009 à 16:16
+47
Utile
1
liste = ['lundi','mardi','mercredi']

liste.index('mardi')
>>> 1

attention => provoque une erreur si l'element n'est pas present dans la liste
Cette réponse vous a-t-elle aidé ?  
+9
Utile
Tu peux faire :

joursemaine.index('mardi') 

qui retournera 1
(cf. http://diveintopython.adrahon.org/native_data_types/lists.html#d0e6152 )
qui est la version la plus élégante.

Après, d'une manière générale, on peut toujours utiliser des trucs bourrins. Si tu devais parcourir une liste avec plusieurs fois le même élément, cette méthode ne te donnerai que le premier, et il faudrait songer à utiliser la méthode enumerate() lors de ton parcours de liste pour récupérer à la fois l'élément et l'index.

for index,jour in enumerate(joursemaine):
    print index,jour

(cf. http://docs.python.org/tutorial/datastructures.html#looping-techniques)
+8
Utile
Ou l'on peut tout simplement faire ceci :

for index, jour in enumerate(liste):
    print "l'index ", index, " a pour jour ", jour

+4
Utile
s=['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche']
for i in range(0,len(s)):
if s[i]=='mardi':
print(i)
-1
Utile
1
Je pense que comment ca ce devrai fonctionner:

joursemaine = ['lundi','mardi','mercredi','jeudi','vendredi','samedi','dimanche']

joursemaine[0] donne lundi
joursemaine[3] donne jeudi
....
Voilà!
Ce n'est pas dans ce sens que je le veux... évidemment si on donne un indice il retourne le jour qui correspond. Mais je voudrai faire l'inverse, demander le jour et il me retourne l'indice... chaud hein? ^^

Merci.