2016-11-10 10 views
1

Ich experimentiere mit der Verwendung von Wörterbüchern in Python als eine Alternative, um Fälle zu wechseln. Ich möchte eine Reihe von Werten als Schlüssel in meinem Wörterbuch verwenden. Ich habe etwas Ähnliches wie dem folgenden Code:Verwenden von Bereichen als Schlüssel in Wörterbüchern

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 ist ein Wörterbuch mit Paaren wie „Alter“ bevölkert: 0,199, „Name“: 0,0, und so weiter.

Was ich möchte, ist, wenn der Wert der Spalte zwischen 0 und 0,5 ist, um "avg" zu meiner to_do_list hinzuzufügen, wenn es zwischen .5 und .9 ist, um "value" zu meiner to_do_list hinzuzufügen und ansonsten "Drop" zu meiner to_do_list hinzuzufügen.

Momentan ist es das Hinzufügen von "Wert", wenn der Wert 0.0 ist und "Tropfen" andernfalls.

Antwort

2

dict kann nicht als Bereich sperrbarer Bereich haben. Sie können jedoch einen Schlüssel erstellen, der den Bereich in Form von tuple angibt, aber es ist nutzlos, da Sie dict.get(x) nicht direkt aufrufen können, um den Wert aus Schlüssel mit Tupel wie (y1, y2) zu erhalten (wobei y1 < x Schlüssel zu überprüfen, ob Wert ist) Teil jeder Bereich

ich werde Sie schlagen eine Funktion wie diese für die Suche nach der Kategorie, zu schaffen.

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