在Numba中,目前不支持直接在@njit函數中使用Python的dict。這是因為Numba的@njit裝飾器要求函數中的所有操作都能在nopython模式下編譯執行,而dict的動態特性使得它難以在nopython模式下進行編譯。
然而,妳可以使用numba.typed.Dict來代替Python的dict。numba.typed.Dict是Numba提供的壹種特殊的字典類型,它支持在@njit函數中進行編譯執行。
如何在@njit函數中使用numba.typed.Dict看下面的例子
import numba as nb
from numba import types
from numba.typed import Dict
@nb.njit
def use_typed_dict():
d = Dict.empty(key_type=types.unicode_type, value_type=types.float64)
d['a'] = 0.1
d['b'] = 0.2
v1 = d['a']
v2 = d['b']
summed_v = v1 + v2
return summed_v
result = use_typed_dict()
print(result)