将Python中的字符串一次反转两个字符(网络字节顺序)

假设你有这个字符串:

ABCDEFGH

你想反转它,使它变成:

GHEFCDAB

什么是最有效/ pythonic解决方案?我试过几个不同的东西,但他们都看起来可怕…

提前致谢!

更新:

如果有人有兴趣,这不是家庭作业。我有一个脚本,它正在处理来自网络捕获的数据,并将其作为十六进制字节的字符串返回。问题是数据仍然是网络顺序。由于应用程序的写入方式,我不想回去尝试使用说socket.htons,我只是想反转字符串。

不幸的是,我的努力似乎如此可怕,我知道必须有一个更好的方式(一个更pythonic的解决方案) – 因此我的问题在这里。

简单的方法是:

"".join(reversed([a[i:i+2] for i in range(0, len(a), 2)]))

这通过首先将字符串分成对来工作:

>>> [a[i:i+2] for i in range(0, len(a), 2)]
['AB', 'CD', 'EF', 'GH']

然后反转,最后将结果连接在一起。

http://stackoverflow.com/questions/5864271/reverse-a-string-in-python-two-characters-at-a-time-network-byte-order

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:将Python中的字符串一次反转两个字符(网络字节顺序)