Cod*_*sci 5 python python-2.7 python-3.x
假设我创建了一个字符串:
>>> S = "spam"
Run Code Online (Sandbox Code Playgroud)
现在我将其索引如下:
>>> S[0][0][0][0][0]
Run Code Online (Sandbox Code Playgroud)
我输出为:
>>> 's'
Run Code Online (Sandbox Code Playgroud)
但当我将其索引为:
>>> S[1][1][1][1][1]
Run Code Online (Sandbox Code Playgroud)
我输出为:
Traceback (most recent call last):
File "<pyshell#125>", line 1, in <module>
L[1][1][1][1][1]
IndexError: string index out of range
Run Code Online (Sandbox Code Playgroud)
为什么输出不是'p'?
为什么它也适用于S [0] [0]或S [0] [0] [0]或S [0] [0] [0] [0]而不适用于S [1] [1]或S [1] [1] [1]或S [1] [1] [1] [1]?
El'*_*man 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
Run Code Online (Sandbox Code Playgroud)
[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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1901 次 |
| 最近记录: |