根据范围分配值

问题描述 投票:0回答:1

我有一个数据集,其中的值与时间相对应:

 value = "a", begin = 1.1, end = 1.67

我想根据分配给某个范围的值的单独数据集对值进行分类:

 1.1 - 1.8: "blue"

因此,像“a”这样的数据点被分配为“蓝色”类别。

我不知道从哪里开始。

谢谢!

我无法使用 range() 因为我正在使用浮点数。

不然我就迷路了。

python python-3.x
1个回答
0
投票

您需要检查一个值是否在范围的端点内以分配它的标签。 执行此操作的一种方法是创建要分配的

start, stop, label
元组的列表。 然后创建一个函数,该函数接受一个值,对照列表检查该值,然后返回标签。

由于您的数据示例中有开始和结束,您可能需要考虑为这两个值使用标签。

value = "a"
begin = 1.1
end = 1.67

labels = [
    (1.1, 1.8, 'blue'),
    (1.8, 2.2, 'green'),
    (2.2, 3.6, 'red'),
]

def get_label(value, label_list):
    for start, stop, label in label_list:
        if start <= value < stop:
            return label
    return 'NO-LABEL'

begin_label = get_label(begin, labels)
end_label = get_label(end, labels)
© www.soinside.com 2019 - 2024. All rights reserved.