如何在Python中获取字符的ASCII值为int ?
当前回答
公认的答案是正确的,但是如果您需要将一大堆ASCII字符立即转换为它们的ASCII码,则有一种更聪明/有效的方法来做到这一点。而不是做:
for ch in mystr:
code = ord(ch)
或者稍微快一点的:
for code in map(ord, mystr):
你转换为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的本地测试中,使用map(ord, mystr)迭代一个str以获得其ASCII码,开始时使用len 10 str的时间大约是在Py2上使用bytearray(mystr)或在Py3上使用mystr.encode(' ASCII ')的两倍,随着str变长,为map(ord, mystr)支付的乘数上升到~6.5x-7x。
唯一的缺点是转换是一次性完成的,因此您的第一个结果可能需要更长的时间,而真正巨大的str将具有相应大的临时bytes/bytearray,但除非这迫使您进行页面抖动,否则这可能无关紧要。
其他回答
你正在寻找:
ord()
要获取字符的ASCII码,可以使用ord()函数。
下面是一个示例代码:
value = input("Your value here: ")
list=[ord(ch) for ch in value]
print(list)
输出:
Your value here: qwerty
[113, 119, 101, 114, 116, 121]
注意,ord()本身并没有给你ASCII值;它给你字符的数值,不管它是什么编码。因此,如果你使用Latin-1, ord('ä')的结果可能是228,如果你使用UTF-8,它可能引发TypeError。如果你传递一个Unicode,它甚至可以返回Unicode代码点:
>>> ord(u'あ')
12354
公认的答案是正确的,但是如果您需要将一大堆ASCII字符立即转换为它们的ASCII码,则有一种更聪明/有效的方法来做到这一点。而不是做:
for ch in mystr:
code = ord(ch)
或者稍微快一点的:
for code in map(ord, mystr):
你转换为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的本地测试中,使用map(ord, mystr)迭代一个str以获得其ASCII码,开始时使用len 10 str的时间大约是在Py2上使用bytearray(mystr)或在Py3上使用mystr.encode(' ASCII ')的两倍,随着str变长,为map(ord, mystr)支付的乘数上升到~6.5x-7x。
唯一的缺点是转换是一次性完成的,因此您的第一个结果可能需要更长的时间,而真正巨大的str将具有相应大的临时bytes/bytearray,但除非这迫使您进行页面抖动,否则这可能无关紧要。
从这里开始:
函数ord()获取int值 焦的。如果你想的话 转换回来后玩 数字,函数chr()做的技巧。
>>> ord('a')
97
>>> chr(97)
'a'
>>> chr(ord('a') + 3)
'd'
>>>
在python2中,还有unichr函数,返回序号为unichr参数的Unicode字符:
>>> unichr(97)
u'a'
>>> unichr(1234)
u'\u04d2'
在python3中,您可以使用chr而不是unichr。
ord() - Python 3.6.5rc1文档
ord() - Python 2.7.14文档
推荐文章
- 将Pandas或Numpy Nan替换为None以用于MysqlDB
- 使用pandas对同一列进行多个聚合
- 使用Python解析HTML
- django MultiValueDictKeyError错误,我如何处理它
- 如何在for循环期间修改列表条目?
- 我如何在Django中创建一个鼻涕虫?
- 没有名为'django.core.urlresolvers'的模块
- 蟒蛇导出环境文件
- Django - makemigrations -未检测到任何更改
- SQLAlchemy:引擎、连接和会话差异
- 在Python Pandas中删除多个列中的所有重复行
- 更改pandas DataFrame中的特定列名
- 将Pandas多索引转换为列
- 熊猫在每组中获得最高的n个记录
- 熊猫数据帧得到每组的第一行