如何更换' 1c'到' \ x1c'在python中。我有一个包含' 12'' 13'等元素的列表。等,并希望替换为' \ x12',' \ x13'等
这是我尝试过的失败
letters=[]
for i in range(10,128,1):
a=(str(hex(i))).replace('0x','\x')
letters.append(a)
print letters
我需要的是' 31'被' \ x31'取代---> ' 1'不是' \ x31' 0r \ x31
答案 0 :(得分:2)
您需要使用内置函数chr
来返回正确的ascii代码(这是您追求的字符串):
>>> [chr(i) for i in range(10,20,1)]
['\n', '\x0b', '\x0c', '\r', '\x0e', '\x0f', '\x10', '\x11', '\x12', '\x13']
答案 1 :(得分:1)
您的代码很好,您只需要使用\
转义\
。
letters=[]
for i in range(10,128,1):
a=(str(hex(i))).replace('0x','\\x') #you have to escape the \
letters.append(a)
print letters
答案 2 :(得分:1)
执行任务的最佳方法是使用字符串格式,然后您不必替换任何内容,代码看起来更清晰:
letters = ['\\x%x' % i for i in range(10, 128)]
print letters