我有关于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行不是错误???
答案 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个元素存在并且可以被检索。