问题:有一个十六进制的字符串: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