通过索引访问python列表对象

时间:2015-06-05 10:24:04

标签: python

我有关于python列表索引的问题。 假设有一个列表,我按索引访问列表中的对象。 看看这段代码:

1: x=[["python"],]

2: x[0]
3: ['python']

4: x[0][0]
5: 'python'

6: x[0][0][0]
7: 'p'

直到现在,它们都是正确的,但我无法理解:

8: x[0][0][0][0]
9: 'p'
10:x[0][0][0][0][0][0][0][0]
11:'p'

其实我不明白为什么这不是错误。   为什么第8行和第10行不是错误???

3 个答案:

答案 0 :(得分:6)

因为单个字符(此处" p")在python中被视为字符串,并且每个字符串的0的索引是其第一个字符(示例" p" [0] ==& #34; p"。)

实施例

x[0][0][0][0] # "p" as a string (Given)
x[0][0][0][0][0] #"p" as a first character 
                 # of previous string as when 
                 # you write "p"[0]

"p"[0] # remember also prints "p" as it is 
       #  the first char

答案 1 :(得分:0)

那是因为x[0][0][0]返回一个字符串,即"p"。所以x[0][0][0][0]p,因为字符串"p"的第一个字符是"p"

尝试这样做:

s = "Hi"
s[0]
s[0][0]

s [0]和s [0] [0]返回" H"

答案 2 :(得分:0)

Single-char是长度为1的退化字符串序列。因为它是一个序列,所以可以使用方括号表示法检索元素。因为它不是空的(只有一个元素),所以第0个元素存在并且可以被检索。