假设我创建了一个字符串:
>>> S = "spam"
现在我将其编入索引如下:
>>> S[0][0][0][0][0]
我输出为:
>>> 's'
但是当我把它编入索引时:
>>> S[1][1][1][1][1]
我输出为:
Traceback (most recent call last):
File "<pyshell#125>", line 1, in <module>
L[1][1][1][1][1]
IndexError: string index out of range
为什么输出不是&#39; <&#39; ?
为什么它也适用于 S [0] [0] 或 S [0] [0] [0] 或 S [0] [ 0] [0] [0] 而不是 S [1] [1] 或 S [1] [1] [1] 或 S [1] [1] [1] [1]
答案 0 :(得分:10)
答案是S[0]
给你一个长度为1的字符串,因此必须在索引0处有一个字符。S[1]
也会给你一个长度为1的字符串,但它必然没有索引1处的字符。见下文:
>>> S = "spam"
>>> S[0]
's'
>>> S[0][0]
's'
>>> S[1]
'p'
>>> S[1][0]
'p'
>>> S[1][1]
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
S[1][1]
IndexError: string index out of range
答案 1 :(得分:8)
任何字符串的第一个索引([0]
)是它的第一个字符。由于这会产生一个字符的字符串,因此该字符串的第一个索引是第一个字符,它本身就是一个字符。您可以根据需要执行[0]
并保持相同的角色。
但是,第二个索引([1]
)仅对具有至少两个字符的字符串存在。如果您已将索引编入索引以生成单字符字符串,则[1]
将无效。
>>> a = 'abcd'
>>> a[0]
'a'
>>> a[0][0]
'a'
>>> a[1]
'b'
>>> a[1][0][0]
'b'
>>> a[1][1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
答案 2 :(得分:0)
Python String将始终具有第0个Position String / 1st Character。即使我们执行[0] 100次,您也总是选择剩余字符串的第一个字符。因此....
对于数组下标以1开头的编程语言,您可以类似地为第一个字符执行此操作。