这是我在教学生时发现的一个奇怪的Python。使用负指数在Python中访问整个字符串
如果否定索引应该正确工作,那么对于字符串m ='string',我执行了以下步骤。
>>> m='string'
>>> m[:-1]
'strin'
>>> m[:0]
''
>>> m[-1]
'g'
>>> m[0:]
'string'
>>> m[:-1]
'strin'
>>> m[:0]
''
>>>
我想知道如何使用负索引访问整个字符串?
这是我在教学生时发现的一个奇怪的Python。使用负指数在Python中访问整个字符串
如果否定索引应该正确工作,那么对于字符串m ='string',我执行了以下步骤。
>>> m='string'
>>> m[:-1]
'strin'
>>> m[:0]
''
>>> m[-1]
'g'
>>> m[0:]
'string'
>>> m[:-1]
'strin'
>>> m[:0]
''
>>>
我想知道如何使用负索引访问整个字符串?
>>> m='string'
>>> m[-len(m):]
'string'
就像正指数从一个字符串的开头向前计数一样,负指数从最后开始计数。因此,我们必须计算回len(m)
以回到m
的开始。
'n = m [-len(m):]'然后做:'n是m'。 – cdarke
我猜你实际上并不是指任何人所建议的答案。你想知道究竟是为什么m[:-N]
返回所有字符米除了最后ñ,除非N是零,因为-0等于0,m[:0]
应该,当然,返回一个空字符串。
不幸的是,这是一种语言不可逾越的怪癖。
作为警务人员,我会提供:m[:None]
或m[:(None if N==0 else -N)]
。
你不能。除非'm [-0:]'或'm [-len(m):]'重要。 –
但是为什么?这不是什么负面指数。 – DeepSpace
'm [:: - 1]'总是一个有趣的演示。问一个问题,“为什么列表有一个'reverse()'方法,但是一个字符串没有?列表上的这个切片和'reverse()'有什么区别? – cdarke