問題:有一個十六進制的字元串: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