阿波罗的战车
接受的答案是正确的,但如果您需要立即将大量ASCII字符转换为ASCII代码,则有一种更聪明、更有效的方法。而不是做:for ch in mystr:
code = ord(ch)或者稍微快一点:for code in map(ord, mystr):您可以转换为直接迭代代码的Python本机类型。在Python 3上,它很简单:for code in mystr.encode('ascii'):在Python2.6/2.7上,它只是稍微多了一点,因为它没有Py3风格bytes对象(bytes的别名str,它按字符进行迭代),但它们确实有bytearray:# If mystr is definitely str, not unicodefor code in bytearray(mystr):# If mystr could be either str or unicodefor code in bytearray(mystr, 'ascii'):编码是一种本机按序号迭代的类型,这意味着转换要快得多;在Py2.7和Py3.5的本地测试中,迭代一个str以获取其ASCII代码map(ord, mystr)开始花费大约两倍的时间len 10 str比使用bytearray(mystr)关于Py2或mystr.encode('ascii')在Py3上,并且作为str时间越长,乘数就越长map(ord, mystr)上升到6.5倍-7倍。唯一的缺点是转换是一次性的,所以您的第一个结果可能需要更长的时间,而且非常巨大。str会有一个相当大的临时bytes/bytearray,但除非这迫使你翻页,否则这不太可能重要。