通过将转义字符附加到每个元素来替换列表的元素

时间:2014-04-27 08:11:49

标签: python string list replace

如何更换' 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

3 个答案:

答案 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

DEMO

答案 2 :(得分:1)

执行任务的最佳方法是使用字符串格式,然后您不必替换任何内容,代码看起来更清晰:

letters = ['\\x%x' % i for i in range(10, 128)]
print letters