8

重复切片适用于元组和列表就好了:

>>> tuple = ("nav", "yad")
>>> tuple[0]
'nav'
>>> tuple[0][0]
'n'

但是用字符串:

>>> name="university"
>>> name[0]
'u'

这里奇怪的是,当我尝试对字符串名称变量重复切片时,name[0][0]or处没有任何内容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
4

2 回答 2

12

字符串是一个序列。一个字符的字符串仍然是一个具有一个元素的序列。因此,您可以使用字符串,name[0][0][0][0]...并且可以正常工作。与 index 相同-1,返回序列的最后一个元素:

>>> name[0][0]
'u'
>>> name[0][0][-1]
'u'
>>> name[0][0][-1][-1]
'u'

name[0][1]显然失败了,因为字符串中只有一个元素name[0]

于 2012-10-26T08:51:26.500 回答
0

添加到@Roman的答案。我认为您的印象是name[0]会返回某种char. 但事实并非如此。发生的是name[0]返回一个长度字符串1。所以无论你用 0 重复索引一个非空字符串多少次,它总是返回相同的。

于 2013-12-04T09:04:51.197 回答