我需要尽可能快地将多个char值转换为相应ASCII字符串。这是一个玩具的例子。我想要从python环境调用的H()函数返回str'aaa'。
from libcpp.string cimport string
cdef string G():
return chr(97)
def H():
cdef string s
s.append(G())
s.append(G())
s.append(G())
return s
我相信,这不是最佳变体,因为它使用python函数ord()将97封装到python对象中,然后返回char,将其装入另一个python对象str并最终将其转换为c ++字符串。我怎样才能更快地完成转换?
答案 0 :(得分:1)
<string>chr(i)
可以替换为
string(1, <char>i)
以下是新变体的示例:
cdef string G():
return string(1,<char>97)
def H():
cdef string s
s.append(G())
s.append(G())
s.append(G())
return s
新版本的工作速度提高了2倍。