如何在Numba Typed Dict中查找最小值对应的键?
问题
用户预先定义了如下Numba类型字典:
testDict = numba.typed.Dict.empty(key_type=numba.types.unicode_type,value_type=numba.types.float64)
并为字典赋值:
testDict={'A1':1.1,'B2':1.2, 'C3':1.3, 'D4':1.4}
询问是否可以像普通Python字典那样,通过minkey=min(testDict, key=testDict.get)的方式查找最小值对应的键。
回答
- 在未被Numba JIT装饰的普通Python代码中,完全可以直接用
min(testDict, key=testDict.get)获取最小值对应的键。numba.typed.Dict实现了和标准Python字典兼容的基础接口,支持迭代键集合、调用get方法等操作,行为和普通字典一致。 - 如果是在
@numba.jit或@numba.njit装饰的函数内部使用,直接传递testDict.get作为key参数可能触发兼容性报错。此时可以改用两种替代方案:- 用lambda表达式替代
testDict.get:minkey = min(testDict, key=lambda k: testDict[k]) - 手动遍历键值对查找,兼容性最优:
minkey = None min_val = float('inf') for k, v in testDict.items(): if v < min_val: min_val = v minkey = k
- 用lambda表达式替代
内容的提问来源于stack exchange,提问作者mykd
相关产品推荐
相关产品推荐

