考慮以下字符串輸入到一個Python化的方法:移動定冠詞到字符串的結尾在Python
福爾摩斯歷險記福爾摩斯
戰爭
的傳說的藝術兩個城市
一個火星
的公主
我想看看下面的輸出:
福爾摩斯冒險的
孫子兵法,兩個城市的
故事,火星的
公主,A
有什麼想法嗎?
考慮以下字符串輸入到一個Python化的方法:移動定冠詞到字符串的結尾在Python
福爾摩斯歷險記福爾摩斯
戰爭
的傳說的藝術兩個城市
一個火星
的公主
我想看看下面的輸出:
福爾摩斯冒險的
孫子兵法,兩個城市的
故事,火星的
公主,A
有什麼想法嗎?
首先,split
關閉的第一個字:
first, rest = title.split(None, 1)
現在,檢查第一個字是文章:
if first in {'A', 'An', 'The'}:
而且,如果是的話,它移動到結束:
return rest + ', ' + first
把它一起:
def fix_title(title):
first, rest = title.split(None, 1)
if first in {'A', 'An', 'The'}:
return rest + ', ' + first
return title
如果你希望能夠妥善處理空行,你需要更多的邏輯,我覺得在這種情況下,讀取與partition
而不是split
更好。只要將中間的兩行改爲:
first, _, rest = title.partition(' ')
if first in {'A', 'An', 'The'} and rest:
我喜歡這個,因爲它可以處理字符串中沒有明確文章的時候。 – Soviero
'An'或'A'不是一篇定文 – Spaceghost
@Spaceghost:對,他們是_indefinite_文章。但這真的屬於對這個問題的評論;操作員顯然希望'A'和'An''被移動,他只是用錯誤的措辭來詢問它。 – abarnert
您只是想要一個修復單個標題的函數,還是希望函數能夠轉換整個輸入?而且,如果是後者,是輸入字符串列表,一個帶有換行符的大字符串,一個文本文件......?這些輸入中的空白行是否必須單獨保留爲空字符串/行? – abarnert
@abarnert我可以自己做實際的實現。我只是無法弄清楚實際需要的代碼。 – Soviero