Python反向字符串切片的工作原理及切片无输出问题解析
Python反向字符串切片工作原理解析
先明确字符串'Python'的索引对应关系:
索引:0 → P,1 → y,2 → t,3 → h,4 → o,5 → n
为什么name[4:1]没有输出?
Python切片的默认步长step是1,代表从左往右遍历元素。切片遵循[start:end:step]的规则,且是左闭右开区间(包含start位置的元素,不包含end位置的元素)。
当step=1时,要求start < end才能取到元素,否则切片结果是空序列。name[4:1]里start=4,end=1,4>1,从左往右根本找不到符合条件的元素,所以返回空字符串,打印自然没有输出,这是Python切片的正常逻辑,不会报错。
为什么name[4:1:-1]输出oht?
当step=-1时,遍历方向变成从右往左,此时要求start > end才能有效取到元素。name[4:1:-1]的执行逻辑是:
- 从索引4的元素
o开始 - 以步长-1往左遍历,依次取索引3的
h、索引2的t - 当到达end=1的位置时停止(不包含索引1的元素
y)
最终取出的元素组合就是oht。
内容的提问来源于stack exchange,提问作者Manas
相关产品推荐
相关产品推荐

