Je souhaite récupérer la valeur la plus proche de la liste des matrices pour la valeur donnée.
J'ai essayé de récupérer la valeur la plus proche, mais j'ai des problèmes avec la boucle que j'utilise. P>
Nearest midGirth 3 Nearest value 5 Nearest value 5 Nearest value 5
4 Réponses :
Si je comprends votre question correcte, vous voulez faire quelque chose comme ceci:
Nearest midGirth 3
Oh oui.Merci beaucoup. En raison des déclarations de rupture manquantes, j'ai souffert d'obtenir la sortie correcte.
En outre, @Devesh a posté une meilleure réponse.
Si vous êtes assuré que la liste d'entrée est un entier, convertissez simplement la valeur à son plafond par la réponse sera une approche optimisée consiste à calculer un tableau code> différence code>, c'est-à-dire la différence entre la valeur et chaque élément, trier et renvoyer le Les sorties seront p> math.ceil code> et comparer le numéro avec la valeur 3 p> 2e élément + valeur code> p>
Et si constantes = [2,13,4,5] code>?
Ou si la valeur est 2.1
Va venir avec les solutions pour ceux-ci! Holtez sur SIRS!
C'est beaucoup plus facile.Merci
Mis à jour avec une solution de différence @markmeyer Austin! Vérifiez si cela a du sens?
Génial! Heureux d'être utile @samasha si la réponse vous a aidé, s'il vous plaît envisager d'accepter-le :)
Utilisez NUMPY:
import numpy as np a=np.array([2,3,4,5]) a[np.abs((a-value)).argmin()]
Vous pouvez simplement trouver la min de la différence en utilisant la touche code> de la fonction min code>. Dans le cas des liens Python 3's min () code> < / a> retournera la première valeur rencontrée. Étant donné que vos constantes sont triées, vous pouvez les examiner en sens inverse pour obtenir l'effet de l'arrondi:
La valeur la plus proche peut être 2 aussi?
Il serait utile que vous ayez ajouté pourquoi 2 n'est pas acceptable.
Comme dans les mathématiques normales, nous sommes arrondis de 2,5 à 3.
Vos constantes sont-elles toujours triées?
Arrondi et les plus proches sont deux choses différentes, qui change entièrement la portée de la question :(
Oui mes constantes sont toujours triées @markmeyer
Je veux la valeur la plus proche et non la valeur d'arrondi. Mais 2,5 est au milieu, je suppose que le plus proche est 3
Eh bien les deux sont également plus proches, mais si la valeur était de 2,1, la réponse pour vous être 2 ou 3 @samasha?
Il devrait être 2 @deveshkumarsingh
Puis corrigez-moi si je me trompe, mais si les valeurs sont proches de 2 et 3 pour 2,5, vous souhaitez que la valeur supérieure I.E 3, sinon si vous souhaitez la valeur la plus proche, comme pour 2.1 est-ce juste @samasha? Si oui, je vais réparer ma réponse pour examiner les deux cas