我对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行不是错误?
发布于 2015-06-05 10:27:00
因为单字符(此处为"p")在python中被视为字符串,每个字符串的索引为0是它的第一个字符(例如"p"=="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发布于 2015-06-05 10:31:41
这是因为x[0][0][0]返回一个字符串,即"p"。所以x[0][0][0][0]是p,因为字符串"p"的第一个字符是"p"。
试着这样做:
s = "Hi"
s[0]
s[0][0]S和s都返回"H“
发布于 2015-06-05 10:43:16
单字符是长度为1的退化字符串序列,因为它是序列,所以可以使用方括号表示法检索元素。因为它不是空的(is只有一个元素),所以第0元素在其中存在,并且可以被检索。
https://stackoverflow.com/questions/30664184
复制相似问题