7

文字列の最初と最後の単語を置き換える最もPython的な方法を探しています(文字ベースで行うと、さまざまな理由で機能しません)。私がやろうとしていることを示すために、ここに例があります。

a = "this is the demonstration sentence."

Python関数の結果を次のようにしたいと思います。

b = "This is the demonstration Sentence."

トリッキーな部分は、弦の前または端にスペースがあるかもしれないということです。それらを保存する必要があります。

これが私が意味することです:

a = " this is a demonstration sentence. "

結果は次のようになります。

b = " This is a demonstration Sentence. "

また、正規表現がPythonの組み込みメソッドよりもこの仕事をうまく行うか、またはその逆かについての意見にも興味があります。

4

5 に答える 5

1

これはあなたのために働きますか:

In [9]: a = "this is the demonstration sentence."

In [10]: left, _, right = a.strip().partition(' ')

In [11]: mid, _, right = right.rpartition(' ')

In [12]: Left = left.title()

In [13]: Right = right.title()

In [14]: a = a.replace(left, Left, 1).replace(right, Right, 1)

In [15]: a
Out[15]: 'This is the demonstration Sentence.'
于 2012-11-29T01:55:34.937 に答える
0

inspectorG4dget に似ていますが、代わりにmaxsplit引数を指定.rsplit()して使用します。.capitalize()

注:左から分割するために.split()、オプションのmaxsplit引数も受け入れます。

>>> a = " this is a demonstration sentence. "
>>> part_one, part_two = a.rsplit(" ", 1)
>>> " ".join([part_one.capitalize(), part_two.capitalize()])
'This is the demonstration Sentence.'

.rsplit()テキストを右から分割します。maxsplit引数は、実行する分割数を指定します。この値により、右から11 つの「分割」が得られます。

>>> a.rsplit(" ", 1)
['this is the demonstration', 'sentence.']
于 2012-11-29T02:26:47.613 に答える
0
sentence = " this is a demonstration sentence. "
sentence = sentence.split(' ')  # Split the string where a space occurs

for word in sentence:
    if word:  # If the list item is not whitespace
        sentence[sentence.index(word)] = word.title()
        break  # now that the first word's been replaced, we're done

# get the last word by traversing the sentence backwards
for word in sentence[::-1]:
    if word:
        sentence[sentence.index(word)] = word.title()
        break

final_sentence = ' '.join(sentence)
于 2012-11-29T02:33:40.393 に答える