天天看點

如何将十六進制的字元串反轉?

問題:有一個十六進制的字元串:0x 01 02 03 04 05 06 07 08,如何反轉為:0x 10 20 30 40 50 60 70 80 ?

思路是,由于字元串是不可變類型,是以先将字元串轉換成清單,在清單的基礎上交換元素值,然後再轉換回字元串并輸出結果。代碼如下:

#coding:utf-8
#!/usr/bin/env python

def switchStr(str):
    print 'switch before: ', str
    rawL = str.split(' ')
    for i in range(1, len(rawL)):
        LL = list(rawL[i])  # 将清單中的元素再次轉換為清單
        LL[0], LL[1] =  LL[1], LL[0]  # 交換清單中的兩個元素
        rawL[i] = ''.join(LL) # 将交換後的值還到原來的清單元素中

    print 'switch after : ', ' '.join(rawL)

if __name__ == '__main__':
    switchStr('0x 01 02 03 04 05 06 07 08')
           

輸出結果:

switch before:  0x 01 02 03 04 05 06 07 08
switch after :  0x 10 20 30 40 50 60 70 80