У меня есть непрерывная переменная с минимальным значением 0 и максимальным значением 1. Поэтому сюда входят все числа с плавающей точкой от 0 до 1 включительно.
Я хочу иметь возможность отображать 0-0,2 на «очень низкий», 0,2–0,4 на «низкий», 0,4–0,6 на «средний», 0,6–0,8 на «высокий» и 0,8–1,0 на «очень высокий» .
Я предполагаю, что есть простое решение для этого с использованием словарей. Однако у меня возникли проблемы с генерацией непрерывных диапазонов в качестве ключей. Кажется возможным, что если бы диапазоны были дискретными целыми числами, тогда я мог бы просто использовать функцию диапазона.
Например:
range_dict = {range(0,2):'very low',range(2,4):'low',range(4,6):'medium',
range(6,8):'high',range(8,10):'high'}
Однако при попытке выполнить следующее:
range_dict[1]
Я ожидаю получить «очень низко». Однако я просто получаю KeyError, несмотря на то, что 1 находится в диапазоне (0,2).
Запись этого как
1 in range(0,2)
возвращает True.
В любом случае, вернемся к исходной проблеме, где я имею дело с непрерывной переменной!
Я уверен, что есть простое решение, но оно, очевидно, требует другого подхода! Во-первых, есть ли функция диапазона для учета непрерывных, а не дискретных переменных? Во-вторых, может быть, другая проблема заключается именно в том, что словари не могут отображать несколько в один? Спасибо ...
Еще один способ приблизиться к этому - написать функцию if, elif, else style, охватывающую все ячейки и возвращающую строку в соответствующую точку функции, но я специально ищу решение, включающее использование словаря (так как словарь кажется более понятным способом прочитать это в коде). Еще раз спасибо ...