在字典中使用范围作为键
Using ranges as keys in dictionaries
我正在尝试使用 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,否则将 "drop" 添加到我的 to_do_list。
目前它实际做的是在值为 0.0 时添加 "value",否则添加 "drop"。
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
我正在尝试使用 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,否则将 "drop" 添加到我的 to_do_list。
目前它实际做的是在值为 0.0 时添加 "value",否则添加 "drop"。
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