Comment indexer les 3 valeurs les plus élevées dans une liste?
donc, j'ai ces 2 listes:
score = [350, 914, 569, 223, 947, 284, 567, 333, 697, 245, 227, 785, 120, 794, 343, 773, 293, 995]
name = [Ryan, Stacy, Jenna, Peter, Sophie, Bryan, Cole, Andrea, Emily, Blake, Mike, Stephan, Rob, Eliza, Heather, Daniel, Elisabeth, Samantha]
J'ai trouver les 3 meilleurs scores et les comptabiliser ces scores respectifs de buteurs dans la liste nom, afin que je puisse avoir de nouvelles listes
top3score = [947, 995, 914]
top3name = [Sophie, Samantha, Stacy]
Je suis la pensée de l'indexation les scores les plus élevés, en les ajoutant à une liste que l'aide de l'index de comptage, ces scores avec les noms.
ma question est comment puis-je indexer les 3 valeurs les plus élevées dans la liste?
et puis, comment puis-je utiliser l'index pour rechercher les marqueurs nom dans la liste pour que je puisse les ajouter dans la top3name liste?
- Mauvaise structure de données. Vous devriez être en utilisant quelque chose comme un
dict
.
Vous devez vous connecter pour publier un commentaire.
Je pense que cela va le faire
Afin de bien comprendre ce qui se passe:
zip: prend iterables que c'est des arguments et prend un seul élément de chaque objet iterable, en les plaçant dans un tuple.
Donc:
triés: allez trier les données. Par défaut, un élément tuple est triée en fonction de l'élément à l'indice 0, de sorte que le score dans ce cas. Reverse=True seront le tri décroissant d'abord.
Et enfin, la
[:3]
est la tranche de la notation, en disant: donnez-moi tous les éléments, depuis le début jusqu'à la 3ème élément. Cela peut avoir été écrit que[0:3]
reverse=True
Si vous êtes uniquement intéressé sur le top 3, il y a
heapq.nlargest
:De la officiel doc:
De la Performance de l'avis: