2016-11-10 43 views
1

我正在尝试在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是填充了像“时代”对的词典:0.199,“姓名”:0.0,依此类推。

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

目前实际做的是在值为0.0时添加“value”,否则为“drop”。

回答

2

dict不能有可排列的范围作为关键。但是,您可以创建一个表示tuple形式的范围的密钥,但它不起作用,因为您无法直接呼叫dict.get(x)以获取密钥的值为(y1, y2)(其中y1 < x键检查值是否为任何范围的一部分

我会建议你创建这样的功能查找类别:

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