Indicage avec python

Fermé
big_cj - 7 nov. 2009 à 21:41
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 - 9 nov. 2009 à 15:40
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

up!
0
loupius Messages postés 697 Date d'inscription dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
8 nov. 2009 à 10:14
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
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
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 dimanche 1 novembre 2009 Statut Membre Dernière intervention 31 décembre 2017 148
9 nov. 2009 à 15:40
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