繁体   English   中英

Cython:将char值转换为字符串的最快方法

[英]Cython: Fastest way to convert char value to string

我需要尽快将多个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 ++字符串。 我怎样才能更快地进行转换?

找到了!

<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倍。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM