Я рассчитал два способа создания кортежа длиной N.
Это очень быстро:
def createTuple():
for _ in range(100000):
tuplex = (0,) * 1000
CPU times: user 439 ms, sys: 1.01 ms, total: 440 ms
Wall time: 442 ms
Это очень быстро, но не компилируется с Numba:
Invalid use of Function(<built-in function mul>) with argument(s) of type(s): (UniTuple(Literal[int](0) x 1), int64)
Это намного медленнее:
def createTuple():
for _ in range(100000):
tuplex = tuple(0 for _ in range(1000))
%time createTuple()
CPU times: user 5.28 s, sys: 3.28 ms, total: 5.29 s
Wall time: 5.29 s
А также не удается скомпилировать:
The use of yield in a closure is unsupported.
Я новичок в Python и Numba. Есть ли способ получить кортеж длиной N (известный во время компиляции), создаваемый - надеюсь, эффективно - с помощью Numba?