You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python数组负索引切片为何无法显示最后一个元素?

解决Python数组切片从末尾逐步缩减时首项为空的问题

你的代码里,第一次循环i=0时,-i等于0,Python切片arr[-(len(arr)):-i]就变成了arr[-7:0]。由于步长默认是正的,结束索引0小于起始索引-7,所以返回空数组,这就是首项缺失的原因。

修复方案1:调整切片逻辑

def find_even_index(arr):
    for i in range(len(arr)):
        # 当i=0时用None替代0,让切片延伸到数组末尾
        print(arr[-(len(arr)): -i if i != 0 else None])

find_even_index([1,2,3,4,3,2,1])

修复方案2:用正向切片更直观

def find_even_index(arr):
    for i in range(len(arr)):
        # 取前 len(arr)-i 个元素,对应从完整数组逐步缩减
        print(arr[: len(arr)-i])

find_even_index([1,2,3,4,3,2,1])

运行任意一个修复后的代码,都会输出预期结果:

[1, 2, 3, 4, 3, 2, 1]
[1, 2, 3, 4, 3, 2]
[1, 2, 3, 4, 3]
[1, 2, 3, 4]
[1, 2, 3]
[1, 2]
[1]

内容的提问来源于stack exchange,提问作者juangalicia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 21:24:28