8

タプルとリストで繰り返されるスライスは問題なく機能します。

>>> tuple = ("nav", "yad")
>>> tuple[0]
'nav'
>>> tuple[0][0]
'n'

しかし、文字列の場合:

>>> name="university"
>>> name[0]
'u'

ここで奇妙なのは、文字列名変数を繰り返しスライスしようとすると、name[0][0]orname[0][-1]に何もないのに、なぜ表示されるの"u"でしょうか?

>>> name[0][0]
'u'
>>> name[0][-1]
'u'

そして、何かがある場合name[0][0]、他のインデックスにないのはなぜですか?

>>> name[0][1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range
4

2 に答える 2

12

文字列はシーケンスです。1 文字の文字列は、1 つの要素を持つシーケンスのままです。したがって、文字列を使用するname[0][0][0][0]...と、問題なく動作します。index-1と同じで、シーケンスの最後の要素を返します。

>>> name[0][0]
'u'
>>> name[0][0][-1]
'u'
>>> name[0][0][-1][-1]
'u'

name[0][1]string には要素が 1 つしかないため、明らかに失敗しますname[0]

于 2012-10-26T08:51:26.500 に答える