一つだけ内蔵の文字列にです
In [144]: ' '.join(list2)
Out[144]: '" Stop right there " said George .'
In [145]: ''.join(list2)
Out[145]: '"Stoprightthere"saidGeorge.'
参加ありますそうではありませんが、それは「効率的」と表現できる唯一のものです。
私は、式を使用して、望ましくないブランクを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
この質問はすでにここで行われています:[link](http://stackoverflow.com/questions/15950672/join-split-words-and-punctuation-with-punctuation-in-the-right-place) – Dinidiniz