dポイントプレゼントキャンペーン実施中!

text = ' a b c d e f '
で、
text.split()

text.strip().split()
は両方ともに、
['a', 'b', 'c', 'd', 'e', 'f']
で同じ結果になってしまう様なのですが、
text.split()では駄目で、text.strip().split()にしないといけない場合って、
どんなケースがあるのでしょうか?

質問者からの補足コメント

  • お聞きしたかった事は、
    stripもsplitも引数無しで使った場合、text文の与え方で、
    text.strip().split()

    text.split()
    で違いが出てくるケースとかはあるのでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/09/28 09:42

A 回答 (4件)

無いですね。

引数無しの split は文字列の両端に連なる空白文字を
無視しますから、stripは呼ぶだけ無駄だと思います。
    • good
    • 0

たしかに、マニュアルって言い方が回りくどかったりはしますが...



○sepを指定した場合
 元の文字列の先頭がsepの場合、リストの先頭に空文字列が入る
 元の文字列の最後がsepの場合、リストの最後に空文字列が入る
>>> ',1,2,3,'.split(',')
['', '1', '2', '3', '']

○sepを指定しない(またらNoneをした)場合
> 文字列の先頭や末尾に空白があっても、結果の最初や最後に空文字列は含まれません

というのは、「sepを指定した場合」の「先頭/最後がsepの場合」に相当する状態であっても、空文字列が追加されない、ということであり、
先頭/最後が空白であっても、それが無いのとして処理する、という意味になる。
これは「前後の空白を削除してから分割する」と言える。
一方で strip は前後の空白を削除するから、これは「stripしてから分割する」とも言える。

つまり
text.split()

text.strip().split()
と同等と言える
    • good
    • 0

マニュアル, 読んだ?

    • good
    • 0

まずは、マニュアルを読みましょう。



https://docs.python.org/ja/3/library/stdtypes.ht …
> sep が指定されていないか None の場合
(略)
> 文字列の先頭や末尾に空白があっても、結果の最初や最後に空文字列は含まれません。

ということなので
splitのsepを指定したときに、stripの有無で違いが出ます(出ないこともある)
この回答への補足あり
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!