gpt4 book ai didi

python - 在 cython 中循环创建 C++ 映射

转载 作者:行者123 更新时间:2023-11-28 05:01:11 25 4
gpt4 key购买 nike

我正在尝试创建一个 cython 函数,该函数遍历两个 numpy 字符串数组并根据其中找到的数据创建一个新的字典列表。

我想我会使用来自 cython 的 c++,遍历这些 numpy 数组中的每一个,并在我进行时构建一个映射 vector 。我似乎无法弄清楚如何在每次迭代时创建一个空 map 。

我想做这样的事情:

def extract_data(words_seq, labels_seq, max_sentence_len):
cdef int i
cdef vector[map[string, vector[string]]] data
cdef vector[string] new_entry

data = []

for i in range(len(words_seq)):
cdef map[string, vector[string]] new_row_map = {}
labels = labels_seq[i]
words = words_seq[i]

for j in range(max_sentence_len):
label = labels_seq[i][j]
word = words_seq[i][j]

if label == 'junk':
continue
elif new_row_map.count(label) == 0:
new_entry = [word]
new_row_map[label] = new_entry
else:
new_row_map[label].push_back(word)
data.push_back(new_row_map)

return data

但是我收到错误消息cdef statement not allowed here。而且它不喜欢我使用 dict 文字来声明一个空映射。

最佳答案

cdef 必须在函数范围级别使用
我的意思是在循环之外

关于python - 在 cython 中循环创建 C++ 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45928571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com