Indicage avec python

big_cj -  
loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'aimerai savoir comment reconnaitre l'indice du plus grand nombre d'une liste, ainsi que le plus petit.
Si les nombres sont dans l'ordre je pourrais le faire, mais si ils sont dans le désordre je ne sais pas comment faire.
Par ex: pour l'indice du plus grand nombre j'aurais fais :
def indice(l):
a=l[0]
for i in (l):
a=a+l[0]
return a

Quelqu'un peut il m'aider svp ?

4 réponses

big_cj
 
up!
0
loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   148
 
Tes trois lignes de code ne te feront certainement pas arriver au résultat escompté !
Pour trouver l'indice du plus grand nombre de ta liste:
- je déclare comme valeur_max le premier élément de la liste et comme indice_max le premier indice de ta liste,
- je parcours ta liste, et pour chaque indice, je regarde si la valeur de la liste est:
--- inférieure: dans ce cas il n'y a rien à faire,
--- supérieure: dans ce cas il faut mémoriser cette valeur dans valeur_max et l'indice dans indice_max.
A la fin du parcours, tu connaîtras l'indice du plus grand nombre de ta liste.
Le raisonnement est bien sûr le même pour trouver l'indice du plus petit nombre de ta liste.
Bonne continuation.
0
Christophe
 
Merci, en traduisant ce que tu me dis en language python ca donne ca :

def indmax():
valeur_max=0
indice_max=l[0]
for n in (l):
if n>l[n]:
valeur_max=valeur_max+1
indice_max=indice_max+l[n]
return indice_max
Mais j'ai toujours pas le résultat. Je pense que j'ai un probleme avec les compteurs ( a = 0,.....a=a+1)
Dans ce cas la, devrais-je mettre "indice_max=indice_max+l[n]
ou = indice_max+l[n+1] ?
0
big_cj
 
Je rectifie:
def indmax(l):

valeur_max=l[0]

indice_max=0

for n in range(len(l)):

if n>l[n]:

n=valeur_max
l[n]=indice_max
return indice_max
0
loupius Messages postés 697 Date d'inscription   Statut Membre Dernière intervention   148
 
Ou la la !!! ;)
Je rectifie:
def indmax(liste):
  index, indice_max, valeur_max = 0, 0, liste[0]
  for elem in liste:
    if elem > valeur_max:
      valeur_max = elem
      indice_max = index
    index = index + 1
return indice_max
En espérant ne pas m'être trompé ;-)
Bonne réflexion.
0