0
votes

Trouvez la valeur la plus proche dans un tableau à la valeur donnée

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


10 commentaires

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


4 Réponses :


1
votes

Si je comprends votre question correcte, vous voulez faire quelque chose comme ceci:

Nearest midGirth  3


2 commentaires

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.



2
votes

Si vous êtes assuré que la liste d'entrée est un entier, convertissez simplement la valeur à son plafond par math.ceil et comparer le numéro avec la valeur xxx

la réponse sera 3

une approche optimisée consiste à calculer un tableau différence , c'est-à-dire la différence entre la valeur et chaque élément, trier et renvoyer le 2e élément + valeur xxx

Les sorties seront xxx


6 commentaires

Et si constantes = [2,13,4,5] ?


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 :)



0
votes

Utilisez NUMPY:

import numpy as np
a=np.array([2,3,4,5])
a[np.abs((a-value)).argmin()]


0 commentaires

1
votes