反转字符串数组

时间:2017-07-22 12:22:05

标签: python string hexdump

我有一个像小端格式的字符串数组,如何将每一行更改为大端格式:

e28f6001
e12fff16
220c
4679

我想要一个如下输出:

01608fe2
16ff2fe1
0c22
7946
..

2 个答案:

答案 0 :(得分:0)

您可以使用小型正则表达式(..)来反转十六进制字节:

>>> import re
>>> ''.join(re.findall('..', 'e28f6001')[::-1])
'01608fe2'

您可以使用函数和列表推导将此转换应用于列表:

import re

def swap_endian(hexa_string):
    return ''.join(re.findall('..', hexa_string)[::-1])

strings = ['e28f6001', 'e12fff16', '220c', '4679']

print([swap_endian(hexa) for hexa in strings])
# ['01608fe2', '16ff2fe1', '0c22', '7946']

答案 1 :(得分:0)

以下是解决方案的简单方法。

a=raw_input()
str1=""
for i in range(len(a)-1, -1, -2):
    if i-1==-1:
        str1 += str(a[i])
        break
    str1+=str(a[i-1])
    str1+=str(a[i])
print str1