python - 使用范围作为字典中的键

标签 python dictionary range equality

我正在尝试使用 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 是一个字典,其中填充了“年龄”:.199、“姓名”:0.0 等对。

我想要做的是,如果列的值在 0 到 .5 之间,则将“avg”添加到我的 to_do_list,如果列的值在 0.5 到 .9 之间,则将“value”添加到我的 to_do_list,否则将“drop”添加到我的待办事项列表中。

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

最佳答案

dict 不能将可哈希范围作为键。然而,你可以创建一个以元组形式表示范围的键,但它没有用,因为你不能直接调用 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 - 使用范围作为字典中的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40518690/

相关文章:

VIM:删除范围并将其粘贴到当前行

c# - 将 Excel 范围转换为 ADO.NET 数据集或数据表等

python - 数字的递归数字和,是否有更好的方法来编写这个函数?

python - 变量和参数有什么区别

python - python字典中循环(for循环)的顺序是什么

c++ - 插入指向 std::map 的指针

c# - 从加密或不可读或二进制格式保存和加载字典?

python - 获取节点位置和边长

python - 如何找到一个向量与矩阵的余弦相似度

python - Python 的 range 函数是如何工作的?