重复切片对元组和列表很有效:
>>> tuple = ("nav", "yad")
>>> tuple[0]
'nav'
>>> tuple[0][0]
'n'
但是有字符串:
>>> name="university"
>>> name[0]
'u'
这里奇怪的是,当我尝试重复切换字符串名称变量时,
name[0][0]
或name[0][-1]
没有任何内容,为什么会显示"u"
?
>>> name[0][0]
'u'
>>> name[0][-1]
'u'
如果有什么东西在name[0][0]
那么为什么不在其他索引上?
>>> name[0][1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
答案 0 :(得分:12)
String是一个序列。一个字符的字符串仍然是具有一个元素的序列。因此,使用字符串,您可以name[0][0][0][0]...
,它将正常工作。与索引-1
相同,返回序列的最后一个元素:
>>> name[0][0]
'u'
>>> name[0][0][-1]
'u'
>>> name[0][0][-1][-1]
'u'
name[0][1]
显然失败了,因为字符串name[0]
中只有一个元素。
答案 1 :(得分:0)
添加@ Roman的答案。我认为你的印象是name[0]
会返回某种char
。但事实并非如此。会发生什么是name[0]
返回长度为1
的字符串。所以无论你用0重复索引非空字符串多少次,它总是返回相同的。