ホームページ >バックエンド開発 >Python チュートリアル >Python で範囲外の部分文字列をスライスすると、エラーではなく空の文字列が返されるのはなぜですか?

Python で範囲外の部分文字列をスライスすると、エラーではなく空の文字列が返されるのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-05 06:29:131008ブラウズ

Why Does Out-of-Range Substring Slicing in Python Return an Empty String Instead of an Error?

範囲外の部分文字列スライス: なぜ機能するのか

Python での部分文字列スライスは通常、インデックスが切れているときにエラーが発生します範囲内では、この動作には例外があります。操作 'example'[999:9999] を考えてみましょう。エラーの代わりに、空の文字列が返されます。

これは、範囲外のインデックスによる部分文字列のスライスでは例外が発生しないためです。代わりに、Python はそれをシーケンスの長さを超える範囲として解釈し、空のサブシーケンスが生成されます。この動作は、単一要素のインデックス付けとは異なります。インデックスが範囲外の場合はエラーが発生します。

文字列とリストを扱う場合、インデックス付けとスライスの区別が明確になります。たとえば、リストにインデックスを付ける場合、範囲外のインデックスはエラーを返しますが、スライスすると空のリストが返されます。

[0, 1, 2, 3, 4, 5][3]  # Returns 3
[0, 1, 2, 3, 4, 5][3:4]  # Returns [3]

対照的に、文字列の動作は異なります。 Python では、単一の文字は本質的に 1 文字の文字列であるため、範囲外のインデックスを使用して文字列にインデックスを付けると、実質的に空の文字列が生成されます。

'example'[3]  # Returns 'm' (the character at index 3)
'example'[3:4]  # Also returns 'm' (a substring of length 1)

要約すると、範囲外のインデックスで部分文字列をスライスすると、範囲インデックスはシーケンスの長さを超える範囲として解釈され、空のサブシーケンスが生成されるため、エラーは発生しません。ただし、単一の要素にインデックスを付けると、インデックスが範囲外の場合、エラーがトリガーされます。

以上がPython で範囲外の部分文字列をスライスすると、エラーではなく空の文字列が返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。