У меня есть список переменных [A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]
до 1 десятичного места. У меня есть переменная B, которая может быть любым числом до десятичной точки. Я хотел бы найти ближайшее значение в списке переменной B. И вернуть не значение, а число A (например, A5).Найти переменную, ближайшую к значению в списке
-3
A
ответ
0
Если вы знаете NumPy, вы можете написать, как это:
matA = array([A1, A2, A3, A4, A5, A6, A7, A8, A9, A10])
matB = array([B])
diff = abs(matA - matB)
minDiffValue = min(diff)
А потом, писать код, как это, чтобы найти индекс элемента:
closeValueIndex = []
index = 0
for i in diff:
if i == minDiffValue:
closeValueIndex.append(index)
index += 1
1
from operator import itemgetter
a = [A1, A2, ........, A10]
minimum_list = [abs(variable - B) for variable in a]
return min(enumerate(minimum_list), key=itemgetter(1))[0]
Это будет верните индекс переменной с минимальной разницей.
return a[min(enumerate(minimum_list), key=itemgetter(1))[0]]
Это будет возвращать значение в списке с минимальной разницей с переменными В
0
In [1]: vals = [0.8, 5.0, 10.2, 15.6]
value = lambda myvalue: min(vals, key=lambda x: abs(x - myvalue))
value(9.8)
Out[1]: 10.2
Но если вы хотите, чтобы вернуть нечисловой ответ, на который я думаю, что вы хотите. Просто используйте то же самое, но со словарем и значениями в качестве ключей, ответы на которые вы хотите вернуть в качестве значений:
In [2]: vals = {0.8:'A1', 5.0:'A2', 10.2:'A3', 15.6:'A4'}
value = lambda myvalue: vals.get(min(vals, key=lambda x: abs(x - myvalue)))
value(9.8)
Out[2]: 'A3'
Смежные вопросы
- 1. Найти ближайшую ценность к заданному значению в словаре C#
- 2. найти ближайшую пару значений в списке питона
- 3. Найти ближайшую дате в списке datetime
- 4. Как найти ближайшую возможную сумму элементов массива к определенному значению?
- 5. Найти ближайшую ценность в списке ordererd
- 6. Найти временную метку, ближайшую к одному часу назад, в списке
- 7. Найти ближайшую точку к строке
- 8. C# Найти переменную по значению
- 9. Как найти ближайшую строку в списке в LINQ?
- 10. Как найти идентификатор по значению в списке?
- 11. Найти ближайшую строку соответствия
- 12. Найти ближайшую стоимость
- 13. gmaps.js, найти ближайшую точку
- 14. Как найти ближайшую точку к значениям сетки
- 15. SQL - Найти ближайшую к текущей дате
- 16. найти ближайшую точку к данной точке
- 17. найти точку, ближайшую к другим точкам
- 18. Найти ближайшую дату к данной дате
- 19. Как найти переменную, присвоенную значению в Matlab?
- 20. Найти ближайшую точку
- 21. Найти ближайшую к центроиду облака точек
- 22. Найти ближайшую ценность в словаре
- 23. Как найти ближайшую дату
- 24. Найти ближайшую точку
- 25. Найти ближайшую ценность
- 26. Как найти ближайшую улицу
- 27. Как найти ближайшую дату?
- 28. найти ближайшую ценность - MySQL
- 29. Найти ближайшую широту и долготу
- 30. найти ближайшую точку в полилинии
Добро пожаловать Колин! Что вы пробовали? Не могли бы вы опубликовать свой код и объяснить, какая проблема у вас есть? – Llopis
Действительно ли вы хотите, чтобы переменная _name_ или индекс в списке? Первый, как правило, не будет (легко) возможен, но вы можете использовать словарь и вернуть ключ. –
'values.index (min (values, key = lambda i: abs (B - i)))' – CoryKramer