当我发现这个时,我正试图做一些字符串操作:
s = "hefehefe"
l = len(s)
s[:l] # Outputs `hefehefe`
s[l-1::-1] # Outputs `hefehefe`
s[-1] # Outputs 'h'
s[l-1:-1:-1] # Outputs empty ' '
为什么Python在执行最后一行时无法识别带有-1索引的迭代结束?这是列表索引的已知行为吗?
答案 0 :(得分:3)
你的几个断言都是假的:你说
s[l-1::-1] # Outputs `hefehefe`
s[-1] # Outputs 'h'
但是任何拥有Python交互式解释器以及复制和粘贴功能的人都可以看到:
>>> s[l-1::-1] # Outputs `hefehefe`
'efehefeh'
>>> s[-1] # Outputs 'h'
'e'
请不要轻易做出明确的错误断言:不好。