Cython - эффективные опции для списка Python - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть две эти функции в коде Python. Python, которые вызываются случайным образом с течением времени:

cdef double dirac(self,Py_ssize_t i)nogil:
        cdef Py_ssize_t index
        with gil:
            if i in self.muId:
                index = self.muId.index(i)
                if self.muSpk[index] <= self.time[self.tInt]:
                    self.muId.pop(index)
                    self.muSpk.pop(index)
                    return 1/self.dt
                else:
                    return 0
            else:
                return 0
def addSpike(self,Py_ssize_t muId,double delay):
        self.muId.append(muId)
        self.muSpk.append(self.time[self.tInt] + delay)
        if self.LR < muId:
            self.LR = muId

Они являются частью одного и того же класса, и их переменные предварительно определены.

Я пытаюсь выработать более эффективный подход к этому, но у меня нет идей. Я искал очереди приоритетов C ++ или CPython подход API, но мне не хватает опыта для его реализации.

Есть предложения?

...