关于python的问题,请求各位专家解答

img


列表找第二大的数,但是自己使用内置函数没有作对,请求帮助,本人初学者

n = int(input('一共有几个元素?'))
a = []
for i in range(n):
    a.append(int(input()))
def find_2(a):
    a.sort(reverse=True)
    return a[1]
# print(a)
print(find_2(a))

img

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7650796
  • 这篇博客也不错, 你可以看下【python练习6】给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写
  • 你还可以看下python参考手册中的 python- 定义扩展类型:已分类主题- 更多建议
  • 您还可以看一下 CSDN就业班老师的Python爬虫技术和浏览器模拟,验证码识别视频教程课程中的 网络爬虫阶段案例实战1小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    回答:

    如果你想要找到一个列表中的第二大的数,可以使用以下代码:

    lst = [4, 5, 2, 8, 9, 7]
    #先排序(从小到大)
    lst.sort() 
    # 取出倒数第二个数
    second_largest = lst[-2]
    print(second_largest) 
    

    这个代码首先对列表进行排序,并且取倒数第二个数,也就是第二大的数。输出结果应该是8。

    如果你想要使用内置函数解决这个问题,可以使用以下代码:

    lst = [4, 5, 2, 8, 9, 7]
    # 通过集合去重然后排序
    unique_nums = sorted(set(lst)) 
    # 取出倒数第二个数
    second_largest = unique_nums[-2]
    print(second_largest) 
    

    这里使用了set()函数去重,并且进行了排序。这个代码也会输出结果8。

    如果你想要在不排序的情况下找到第二大的数,可以使用以下代码:

    lst = [4, 5, 2, 8, 9, 7]
    # 使用max函数取出最大值,然后将其删除,然后再取出最大值即为第二大数
    largest = max(lst)
    lst.remove(largest)
    second_largest = max(lst)
    print(second_largest) 
    

    这个代码会先取出最大值,并将其删除。然后再取出最大值即为第二大的数,输出结果也是8。

    希望这些代码可以帮助你解决问题!