Je souhaite rechercher dans une liste d'objets pour le nombre le plus bas présent dans un attribut des objets.
Ceci est assez facile à l'aide d'une compréhension de liste et de la fonction min code>. Le problème vient lorsque je souhaite trouver l'index de l'objet. P>
4 Réponses :
Utilisez Lire à propos de Lambda ici . P> P> énumérable code> à itérer À travers des listes tout en gardant une trace des indices: (i, école.students_per_class ()) code> est un tuple et en utilisant la touche code> code> de min () code>, nous demandons à Python de trouver un minimum de école.students_per_class () code>, qui renvoie ensuite son indice avec elle. P>
Merci pour votre réponse. Pourriez-vous s'il vous plaît expliquer ce qui se passe avec énumérable et lambda? Je n'ai aucune idée. Merci encore. EDIT: Pourriez-vous le mettre dans mon contexte.
Vous devez échanger l'ordre du tuple de résultat ou renvoyera toujours le premier élément, dont l'index est 0.
@Alexstiles, j'ai ajouté des liens vers la documentation officielle pour la lecture supplémentaire sur énumérer code> et lambda code>.
Je pense que vous recherchez peut-être Fonction np.argmin , si vous fournissez une liste comme une entrée, il retournera l'index de l'élément minimal.
Dans ce cas, ce serait: p>
import numpy as np min_ind = np.argmin([school.students_per_class() for school in schools]) print(schools[min_ind])
Vous pouvez utiliser une touche fournit les valeurs qui seront comparées au lieu de la séquence réelle. Ici, ma séquence est min code> 's clés code> argument à la recherche par index: plage (len (écoles)) code>, qui est juste les indices de tous les éléments. Mais au lieu de trouver l'index minimum, je le fais pour trouver le minimum de écoles [i] .Students_per_class () code> pour chaque index i p>. P>. p>
Pourriez-vous extrapoler sur ce que la "clé" de la Lambda fait réellement. Merci.
@Alex. Oui, je peux élaborer
Je m'excuse pour ma mauvaise utilisation des mots. Pourriez-vous s'il vous plaît élaborer. Merci.
@Alex. J'ai élaboré
@Alex. Nous avons tous été débutants à un moment donné. Si vous êtes prêt à faire un effort, je suis heureux d'aider.
Si vous vouliez pouvoir comparer, trier, trouver le min / max sur les éléments directement, vous pouvez utiliser les méthodes "DUDER". Ces méthodes vous permettent de surcharger des fonctions intégrées sur les classes.
Par exemple, si vous aviez une classe comme celle-ci p> Vous pouvez alors créer deux instances et les comparer directement comme Ceci, p> ou si vous aviez une liste d'éléments p> Vous pouvez alors obtenir l'élément minimum en allant < / p> ou l'index de celui-ci en allant p> Bien que cela puisse suffire à une référence à l'élément minimum . p> p>
Dupliquer de Stackoverflow.com/q/16945518/2988730
Les listes et les tableaux ne sont pas les mêmes en Python. Vous avez des listes.