如何在Python中将字符的ASCII值作为int进行计算?Python中字符的ASCII值
729
A
回答
950
38
您正在寻找:
ord()
134
请注意,ord()本身不给你ASCII值;它会为您提供字符的数字值,因为它使用的是任何编码。因此,如果您使用Latin-1,则ord('ä')的结果可能为228,或者如果您使用UTF- 8。它甚至可以返回的Unicode码点,而不是如果你传递一个Unicode:
>>> ord(u'あ')
12354
12
接受的答案是正确的,但有一个更聪明的/有效的方法,如果你需要一大堆ASCII的转换要做到这一点字符一次写入他们的ASCII码。而不是做:
for ch in mystr:
code = ord(ch)
或稍快:
你转换成直接迭代代码的Python原生类型。在Python 3中,这是微不足道的:
for code in mystr.encode('ascii'):
和Python的2.6/2.7,因为它没有一个PY3风格bytes
对象时,它只是稍微有点复杂(bytes
是str
一个别名,它通过文字迭代) ,但他们确实有bytearray
:
# If mystr is definitely str, not unicode
for code in bytearray(mystr):
# If mystr could be either str or unicode
for code in bytearray(mystr, 'ascii'):
编码为通过序遍历本地意味着转换一个类型去得更快;在Py2.7和Py3.5上的本地测试中,重复使用str
以获得其ASCII码使用map(ord, mystr)
开始需要的时间约为Py3上的bytearray(mystr)
或Py3上的mystr.encode('ascii')
上的,并且当str
获得时更长的时候,支付给map(ord, mystr)
的乘数上涨至〜6.5x-7x。
唯一的缺点是,转换是一下子,让你的第一个结果可能需要较长的时间,而一个真正的巨大str
将有一个比例较大的临时bytes
/bytearray
,但除非这迫使你进入页抖动,这可能不重要。
相关问题
- 1. Ruby中字符的ASCII值
- 2. Python非ASCII字符
- 3. Python:将列表中的字符串值更改为ascii值
- 4. CHR在Python中的非ASCII字符
- 5. 非ASCII字符错误python
- 6. 如何将ascii值列表转换为python中的字符串?
- 7. Python - 替换字符串中的非ASCII字符(»)
- 8. Python 2.7字符串中的非ASCII字符
- 9. 用Python中的unicode字符串替换非ASCII字符
- 10. 删除无效的ascii字符的Python
- 11. Python的非ASCII字符“\ XE2”文件
- 12. 如何查找字符串中字符的ascii值?
- 13. 反转包含ASCII字符和非ASCII字符的字符串
- 14. C中的非ASCII字符
- 15. fputcsv中的非ascii字符
- 16. PHP中的非ASCII字符?
- 17. 如何将一串ascii值转换为Python中的原始字符/数字
- 18. 如何添加字符的ascii值?
- 19. 扫描字符串的ASCII值
- 20. Python 2/3 subprocess.Popen和非ASCII字符
- 21. Python - 用ASCII字符替换unicode emojis
- 22. 非ASCII字符“\ XC5”破python脚本
- 23. 获取美国ASCII字符集 - Python
- 24. 正则表达式找出python中非ascii字符的字段
- 25. 获取ascii字符集ascii字符集在servlet中
- 26. Python包字符串ascii十六进制值
- 27. 在swift中使用ascii值更改字符的值
- 28. Python的正则表达式将字符串中的非ASCII字符转换为最接近的ASCII等价物
- 29. 在java中显示字符串ascii值的字体
- 30. 为什么为字符串(ASCII)值
哪个编码在chr中使用? – njzk2 2011-12-14 08:59:31
@ njzk2:`latin1`(如果你的原始字节是用cp1251编码的(例如cp1251)(西里尔语) – 2012-04-17 04:57:56