2015-01-01 53 views
-2

我要扭轉文本文件中的單詞,例如字母:
輸入>文本文件中的單詞反轉字母?

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)]) 

t漢克斯

+0

你到現在爲止嘗試過什麼?添加一些代碼,如果您有任何錯誤,我們將提供幫助 –

+6

看起來您希望我們爲您編寫一些代碼。儘管許多用戶願意爲遇險的編碼人員編寫代碼,但他們通常只在海報已嘗試自行解決問題時才提供幫助。證明這一努力的一個好方法是包含迄今爲止編寫的代碼,示例輸入(如果有的話),期望的輸出和實際獲得的輸出(控制檯輸出,堆棧跟蹤,編譯器錯誤 - 無論是適用)。您提供的細節越多,您可能會收到的答案就越多。 –

+1

@acclav將其添加到您的問題 –

回答

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?)'模式你任何whitspace後分割字符串,但讓他們,所以你將有以下列表:

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

然後你可以將你的反向f用map聯繫你的話,最後加入他們。

+0

謝謝,對我工作得非常好。 – acclav

+0

@acclav不客氣! – Kasramvd

0

你可以嘗試這樣的:

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

如果文件中的任何行不包含正好4個以空格分隔的值,則會崩潰。 –

+0

投票並不來自我,但我注意到,OP的主要問題是維護空間 - 將它們轉換爲製表符可能不是他想要做的 – Jivan

+0

@Rawing用於OP輸入它的工作。 OP輸入劑量包含4個空格。 – Hackaholic

相關問題