Search code examples
pythonunicodeunicode-escapes

Need a help in adding escape sequence to all elements in a list which later use for unicode


>>> n
['de', 'db', 'aa', 'dC', 'be', 'Ad', 'Da', 'a7', 'Cb', 'Cc', 'Ed', 'D7', 'CA', 'Da', 'db', 'aa', 'bD', 'db', '7d', 'Ad', 'c4', 'DA', 'Ba', 'bD', 'cc', 'DC', 'da', 'dd', '2d', 'CD', 'bA', 'dA', 'EC', 'Cb', 'dC', 'aC', 'Dd', 'ec', 'CD', 'Ae', 'aC', 'dE', 'BE', 'CE', 'db', 'AC', 'EC', 'cb', 'DE']

I have a list like above . I want to add escape character '\x' before each element. I can do appending as '\x' but later I want to join elements to create a unicode character and if I am doing with '\x', its not working

Please suggest


Solution

  • You can and should use binascii.unhexlify.

    from binascii import unhexlify
    
    n = ['de', 'db', 'aa', 'dC', 'be', 'Ad', 'Da', 'a7', 'Cb', 'Cc', 'Ed', 'D7',
         'CA', 'Da', 'db', 'aa', 'bD', 'db', '7d', 'Ad', 'c4', 'DA', 'Ba', 'bD',
         'cc', 'DC', 'da', 'dd', '2d', 'CD', 'bA', 'dA', 'EC', 'Cb', 'dC', 'aC',
         'Dd', 'ec', 'CD', 'Ae', 'aC', 'dE', 'BE', 'CE', 'db', 'AC', 'EC', 'cb', 'DE']
    
    print(repr(unhexlify(''.join(n))))
    

    Example usage of binascii.unhexlify: unhexlify('abcdef') # '\xab\xcd\xef'

    In your case, hex digits are stored in a list, so you should concatenate those first using str.join. And simply pass it to binascii.unhexlify.