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
相关产品推荐
相关产品推荐

