使用负数索引在Python中访问整个字符串

时间:2016-08-22 08:21:15

标签: python python-2.7

这是我在教学生时发现的Python怪异。

如果否定索引应该正常,那么对于字符串m ='string',我执行了以下步骤。

>>> m='string'
>>> m[:-1]
'strin'
>>> m[:0]
''
>>> m[-1]
'g'
>>> m[0:]
'string'
>>> m[:-1]
'strin'
>>> m[:0]
''
>>> 

我想知道如何使用否定索引访问整个字符串?

2 个答案:

答案 0 :(得分:7)

C:\Users\dinesh_pundkar\Desktop>python demo.Py
{'somethingelseelse': [' 1', '5', '6'], 'somethingelse': 'hello', 'something': [
'   1', ' 5', ' 8']}

正如积极指数从字符串的开头向前计数一样,负指数从结尾开始计数。因此,我们必须按public class User { String userName; String Password; int userStatus; } 倒数才能回到>>> m='string' >>> m[-len(m):] 'string' 的开头。

答案 1 :(得分:0)

我猜你实际上并不是指其他人建议的答案。你想知道的是为什么m[:-N]返回 m 中的所有字符,除了最后的 N 除非N为零,因为-0等于0,m[:0]当然应该返回一个空字符串。

不幸的是,这是一种不可逾越的语言怪癖。

作为警告,我会提供:m[:None]m[:(None if N==0 else -N)]