在文本文件中反转单词的字母?

时间:2015-01-01 15:31:04

标签: python python-2.7

我想在文本文件中反转单词的字母,例如:
输入>

ABCD :    123 QA    
FGHK :    456 QB

输出>

DCBA :    321 AQ  
KHGF :    654 BQ

编辑:

我的一些不成功的解决方案:

 " ".join(str[::-1].split()[::-1])  
 ''.join([str[i] for i in xrange(len(str)-1, -1, -1)])

感谢

2 个答案:

答案 0 :(得分:0)

你可以这样试试:

>>> my_string = "ABCD :    123 QA"
>>> "{} {}\t {} {}".format(*map(lambda x:x[::-1],my_string.split()))
'DCBA :\t 321 AQ'

答案 1 :(得分:0)

您可以使用re.split()

>>> import re
>>> s ='ABCD :    123 QA'
>>> ''.join(map(lambda x: x[::-1],re.split(r'(\s?)',s)))
'DCBA :    321 AQ'

使用r'(\s?)'模式在任何空格之后拆分字符串但保留它们,因此您将拥有以下列表:

['ABCD', ' ', ':', ' ', '', ' ', '', ' ', '', ' ', '123', ' ', 'QA']

然后您可以使用map对您的单词应用反向函数,并最后加入它们。