有没有办法将任何类型传递给cython并完整返回?

2024-05-08 19:36:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个计算密集型任务,它做了很多次过滤工作

诸如此类:

# (a large dictionary with a length of about 1m , value could be any python type , keys are all strings.)
dictionary = {'a':1 , 'b':[] , ...} 

for i in range(1e6):
    Filtered(dictionary, 'b') # -> which is expected to return [] in this particular case. 

我想利用cython。这里有一个问题是,是否有任何方法将这个python结构转换成c风格,是否有某种指针可以指向任何python对象,这样我就可以简单地获取输入并完整地返回内容,从而简单地解决这个问题

期待这样的事情:

cdef filter(pydictionary , pystr):
    cdef map[void *] dictionary = pydictionary
    cdef string str = pystr

    # ... some filter stuff
    
    result = dictionary[str] 
    return result

这有可能实现吗?谢谢


Tags: ofindictionaryreturnwithresultfilterlength