1

文字列のリストがあり、リスト内の各文字列の末尾から特定の句読点を削除する必要があります。リストは次のようになります。

list = ['Twas', 'brillig,', 'and', 'the', 'slithy', 'toves', 'Did', 'gyre',
        'and', 'gimble', 'in', 'the', 'wabe:']  #the list is a lot longer

各文字列の末尾のみを含むすべての句読点を取り除き、'"-,.:;!?すべての単語を小文字にする必要があります。

Io I need 'Twas'to be'twas'および I need 'wabe:'to be'wabe'など... ここに含めなかったリスト内の他の単語には、最後に他の句読点が含まれています。

.rstrip()and case を使用してみ.lower()ましたが、 for または while ループを使用してリスト内の各文字列を調べてこれを行う方法がわかりませんでした。使用する必要のない別の方法がある場合、.rstripまたは.lower私はそれらを受け入れます。

私はPythonを使用する初心者なので、非常に基本的な答えが役に立ちます。あなたが何をしているのかを正確に説明していただければ幸いです。

4

1 に答える 1

8
>>> [el.lower().rstrip('\'\"-,.:;!?') for el in list]
['twas', 'brillig', 'and', 'the', 'slithy', 'toves', 'did', 'gyre', 'and', 'gimble', 'in', 'the', 'wabe']

これはリスト内包表記であり、リストを生成するforループを1行で記述する方法です。リストを項目ごとに繰り返し、各要素を小文字に設定してから、末尾の文字'"-、。:;!?を削除します。

于 2012-04-09T10:30:22.443 に答える