This question already has answers here:
Hash a Range of Values
                                
                                    (4个答案)
                                
                        
                                3年前关闭。
            
                    
我正在尝试在Python中使用字典作为切换案例的替代方法。我想在字典中使用一系列值作为键。我有类似下面的代码:

dispatcher = {
    0 < col_value <= .5: "avg",
    .5 < col_value <= .9: "value",
}

for col in self.missing_ratios_dict:

    self.to_do_list[col] = dispatcher.get(self.missing_ratios_dict[col], "drop")


missing_ratios_dict是一本字典,其中填充了“ Age”:.199,“ Name”:0.0等对。

我想做的是,如果列的值介于0和.5之间,以将“ avg”添加到我的to_do_list中,如果介于.5和.9之间,则将“ value”添加至我的to_do_list中,否则在我的to_do_list中添加“ drop”。

当前,它的实际作用是如果值是0.0,则添加“值”,否则,则添加“丢弃”。

最佳答案

dict不能将可哈希范围作为键。但是,您可以创建一个以tuple形式表示范围的键,但这是没有用的,因为您不能直接调用dict.get(x)来从键为(y1, y2)的元组中获取值(其中y1
我建议您创建一个类似这样的函数来查找类别:

def get_type(value):
    category = None
    if 0 < value < 0.5:
         category =  "avg"
    elif 0.5 <= value < 0.8:
         category = "good"
    return category

关于python - 在字典中使用范围作为键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40518690/

10-16 20:19