2016-11-10 24 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