只有一個內置的字符串加入
In [144]: ' '.join(list2)
Out[144]: '" Stop right there " said George .'
In [145]: ''.join(list2)
Out[145]: '"Stoprightthere"saidGeorge.'
這是不對,但它是唯一可以被描述爲「高效」的東西。
我可以想象使用regex
表達式從Out[144]
中刪除不需要的空白。另外,掃描list2
,並與鄰近的串結合標點符號:
In [146]: list3 = ['"Stop', 'right', 'there"', 'said', 'George.']
In [147]: ' '.join(list3)
Out[147]: '"Stop right there" said George.'
可能會有一些附加軟件包是處理這種文本格式。但對於基本的Python,帶有標點符號的字符串與其他字符串沒有區別。
評論linked。用彼得的功能:
In [150]: ' '.join(join_punctuation(list2))
Out[150]: '" Stop right there " said George.'
糾正它包括報價:
In [152]: ' '.join(join_punctuation(list2))
Out[152]: '" Stop right there" said George.'
沒有得到雙方報價的權利。它將標點符號與前面的字符串相連接。 ()
會有同樣的問題。無論如何,這就是你需要的那種處理。
這很容易(
類標點符號應該加入到右邊,並作爲)
加入到左邊。但區分"
的左右連接可能需要查看更廣闊的圖景。第一個"
的句子應該是正確的加入,下一個等等。我懷疑即使那樣也不健壯。
所以要清楚的是,您正在尋找一種有效的方法來在詞語之間放置空格,而不是在標點符號之間放置空格?如果是這樣的話,也許你應該把這個明確的問題放到你的問題的標題和/或正文中,否則就是任何人都猜測你的「正確」是什麼意思。 –
比這更復雜。預計該程序如何能夠判斷是否應該在左側,右側或兩個詞中加入特定的標點符號? – glibdud
這個問題已經在這裏完成:[鏈接](http://stackoverflow.com/questions/15950672/join-split-words-and-punctuation-with-punctuation-in-the-right-place) – Dinidiniz