为什么按片访问可以工作,但不能工作?

2024-10-01 17:40:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下代码:

my_name = 'Tlaloc-ES'

我正在尝试切片,第一次尝试是用这个字谜

my_name[-1:-(len(my_name)+1):-1]

该报告:

'SE-colalT'

然后位置-(len(my_name)+1)表示'T',但尝试使用下一个切片时:

my_name[-(len(my_name)+1)]此操作返回一个错误:

string index out of range

但是用my_name[-(len(my_name))]not,这个返回T

答案是为什么对于getT,在某些情况下我需要加1,而在另一些情况下我不需要

谢谢


Tags: 代码namestringindexlenesmy报告
2条回答

-(len(my_name)+1)将在1之前关闭

string = 'word'
len(string) => 4
string[-len(string)] = 'w'
-(len(string)+1) => -5

在本机python中,索引不能超过边界
第一行工作的原因是,端点可能在边界之外,迭代器到达端点时会停止

原因是您创建的切片(-1:-(len(...)创建了一个从-1到-10的生成器,从技术上讲,它是从-1到-9的数字(-10不包括在内)。因此,使用它作为索引选项(len(my_name) + 1)意味着它超出了my_name的长度。拆下+1,它应该可以工作

相关问题 更多 >

    热门问题