ascii值字符串给出如何拆分这些ascii值并转换为字符串
给出ascii值:87101108991111091013211611132112121116104111110
如何将列表中的上述输入分开,如下所示
[87,101,108,99,111,109,101,32,116,111,32,112,121,116,104,111,110]
在python中
答案 0 :(得分:1)
如果您可以限制值,那么您可以iterate
覆盖构造数字的字符串,直到它落在值的范围内,保存并继续。
这是雄心勃勃的简单生成器,可生成ord(' ')
和ord('z')
内的数字:
In []:
def g(s):
v = 0
for c in s:
v = v*10 + int(c)
if ord(' ') <= v <= ord('z'):
yield v
v = 0
''.join(chr(c) for c in g('87101108991111091013211611132112121116104111110'))
Out[]:
'Welcome to python'
答案 1 :(得分:0)
您可以使用正则表达式。假设输入的ascii值仅用于字符串,则可以使用(A-65到z-122)分割输入数据
>>> import re
>>> map(int,filter(None,re.split(r'([6-9][0-9])|(1[0-1][0-9])|(12[0-2])',s)))
[87, 101, 108, 99, 111, 109, 101, 32, 116, 111, 32, 112, 121, 116, 104, 111, 110]
使用3位整数和2位整数进行拆分也可以!
>>> map(int,filter(None,re.split(r'(1[0-9][0-9])|([0-9][0-9])',s)))
[87, 101, 108, 99, 111, 109, 101, 32, 116, 111, 32, 112, 121, 116, 104, 111, 110]
答案 2 :(得分:0)
这样可以解决问题:
auto ptr = &arr;