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

Python列表排序后访问倒数第二个元素报TypeError错误求助

问题解决:获取排序后列表的倒数第二个元素

你的问题出在arr.sort()这个方法上——它是原地修改原列表,不会返回新的排序后的列表,返回值是None。所以你把它赋值给z,z就成了None,自然没法用z[-2]这种下标访问。

给你两种修正方案:

方案1:原地排序后直接用原列表

先对arr执行原地排序,再直接访问arr的倒数第二个元素:

if __name__ == '__main__':
    n = int(input())
    arr = list(map(int, input().split()))
    arr.sort()  # 原地排序,arr本身被修改
    print(arr[-2])

方案2:用sorted()返回新列表

sorted()函数会生成一个新的排序后的列表,不会修改原列表,适合需要保留原列表的场景:

if __name__ == '__main__':
    n = int(input())
    arr = list(map(int, input().split()))
    z = sorted(arr)  # 返回新的排序后的列表
    print(z[-2])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:48:18