Python trouvant l'index du maximum dans la liste
def main():
a = [2,1,5,234,3,44,7,6,4,5,9,11,12,14,13]
max = 0
for number in a:
if number > max:
max = number
print max
if __name__ == '__main__':
main()
Je suis en mesure d'obtenir la valeur maximale de la matrice (sans l'aide de max() bien sûr...). Comment puis-je obtenir de l'index (position) de cette valeur? S'il vous plaît essayer de garder les choses simples, sans l'aide de Python de mots-clés ou des fonctions intégrées. Merci!
source d'informationauteur Shankar Kumar
Vous devez vous connecter pour publier un commentaire.
Si vous n'êtes pas autorisé à utiliser le construit en fonction index (), juste itérer avec un index, au lieu d'utiliser une boucle foreach.
Dans mon code je voudrais utiliser ce:
Une simple doublure:
Cela évite d'avoir à
.index()
la liste après.Mise à jour:
Ce n'est pas l'ombre de la fonction intégrée dans
max()
et pourra également vous donner des réponses correctes pour les listes qui sont composés uniquement de valeurs négatives.Solution précédente
fera l'affaire.
Fonction intégrée
max(a)
trouverez la valeur maximale dans votre listea
et la fonction de listeindex(v)
trouverez l'indice de la valeurv
dans votre liste. En les combinant, vous obtenez ce que vous recherchez, dans ce cas, la valeur de l'indice de3
.Noter que
.index()
trouverez l'index de la première élément dans la liste qui correspond, donc, si vous avez eu plusieurs identiques "max" valeurs", l'index retourné serait celui de la première.Pour plus d'informations:
Dans l'esprit de la "Simple est mieux que d'être compliqué." (Zen de Python)
Utiliser le argmax méthode de la numpy.objet de tableau.
Vous pouvez utiliser
enumerate
également vous donner un indice lors de l'itération à travers une liste:Utiliser l'index(x) de la fonction. Voir la documentation ici http://docs.python.org/tutorial/datastructures.html
Cependant, ce n'est pas aussi rapide que les autres réponses proposées (par ex. à l'aide d'énumérer). Simples.
c'est plus simple
Si vous aimez puissant code vous le souhaitez 🙂
Si vous ne disposez que d'un nombre entier vous pouvez remplacer les float en int.
Si vous avez vos entrées dans un fichier texte ce faire:
file.txt
2 1 5 234 3 44 7 6 4 5 9 11 12 14 13