0

私は文字列を持っています:

父はバナナを食べて羽の上で寝た

以下に示す私のコードの一部:

...

if word.endswith(('ther')):
   print word

これは印刷featherし、またFather

if conditionしかし、文の最初の単語にこの検索を適用しないように、これを変更したいと思います。したがって、結果は印刷されるだけfeatherです。

私は持ってみandましたが、うまくいきませんでした:

...

if word.endswith(('ther')) and word[0].endswith(('ther')):
   print word

これはうまくいきません。ヘルプ

4

4 に答える 4

2

私があなたの質問を正しく理解していれば、それが文字列の最初の単語である場合、単語を出力したくありません。したがって、文字列をコピーして最初の単語を削除できます。

順を追って説明します。次の文字列があるとします。

s = "Father ate a banana and slept on a feather"

s.split()その出力を実行してキャッチすることで、分割できます。

['Father', 'ate', 'a', 'banana', 'and', 'slept', 'on', 'a', 'feather']

したがって、最初の単語を除くすべての単語が必要な場合は、 index を使用できます[1:]。また、スペースで結合することにより、単語のリストを組み合わせることができます。

s1 = "Father ate a banana and slept on a feather" s2 = " ".join(s1.split()[1:])

文字列s2は次のようになります。

ate a banana and slept on a feather

その文字列を使用して、上記のように単語を繰り返すことができます。

于 2013-08-13T09:29:41.397 に答える
1

一時的な文字列を作りたくない場合

[w for i, w in enumerate(s.split()) if w.endswith('ther') and i]
于 2013-08-13T09:45:44.287 に答える