Python
 Computer >> コンピューター >  >> プログラミング >> Python

範囲外の部分文字列スライスインデックスがPythonで機能するのはなぜですか?


シーケンスの境界の外側でスライスしても(少なくともビルトインの場合)、エラーは発生しません。インデックス付けは単一のアイテムを返しますが、スライスはアイテムのサブシーケンスを返します。したがって、存在しない値にインデックスを付けようとすると、何も返されません。ただし、シーケンスを境界外にスライスした場合でも、空のシーケンスを返すことができます。例:

>>> s = [1, 2, 3]
>>> s[5:8]
[]

ただし、範囲外のインデックスを使用すると、エラーが発生します:

>>> s = [1, 2, 3]
>>> s[5]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

  1. Pythonでシーケンスインデックスによって反復する方法は?

    Pythonのシーケンスオブジェクトは、順序付けられたアイテムのコレクションです。シーケンス内の各アイテム(リスト、タプル、文字列)には、0から始まるインデックスでアクセスできます。 リスト内の要素をトラバースするには >>> L1=[10,20,30,40,50] >>> for i in range(len(L1)): print (L1[i]) 10 20 30 40 50 文字列から一度に1文字をスライスするには >>> string ='TutorialsPoint' >>> for i in

  2. Pythonで文字列内の部分文字列の最後の出現のインデックスを見つける方法は?

    Pythonには、文字列の末尾から部分文字列の出現を検索するrfind()メソッドがあります。見つかった場合は最後に発生したインデックスを返し、それ以外の場合は-1を返します。次のように使用できます: >>> 'some of the some'.rfind('some') 12 >>> 'some of the some'.rfind('none') -1 >>> "NikolaTesla".rfind('kola') 2