len("".split(" ")) == 1
Trueを表示するためのpythonicの説明は何ですか?
なぜ"".split("")
利回りが['']
>>> len("".split(" "))
1
>>> "".split(" ")
['']
str.split(sep)
少なくとも1 つの要素を返します。テキストにsepが見つからなかった場合、その 1 つの要素が元の分割されていないテキストです。
空の文字列の場合、sep区切り文字はもちろん見つからず、ドキュメントで具体的に呼び出されます。
指定された区切り文字で空の文字列を分割すると、 が返されます
['']
。
None
delimiter オプション (デフォルト)の動作に混乱している可能性があります。
sepが指定されていないか、 である場合は、
None
別の分割アルゴリズムが適用されます。連続する空白の実行は単一の区切り文字と見なされ、文字列の先頭または末尾に空白がある場合、結果の先頭または末尾に空の文字列は含まれません。したがって、空の文字列または空白のみで構成される文字列をNone
セパレータで分割すると、 が返されます[]
。
(強調鉱山)。それはstr.split(None)
例外であり、規則ではありません。
[] の長さはゼロです。リストに何かが含まれている場合、リストの長さは >=1 になります。この場合、[''] には 1 つの要素、空の文字列があります。したがって、それは1を与えます。
これは関連している可能性があります:
split() の結果に空の文字列が返されるのはなぜですか?
split() は join() の反対になるように設計されています。
" ".join([""]) == ""
文字列の長さではなく、生成されるリストの長さを示しています。