写一个函数找出一个整数数组中,第二大的数

本文阅读 1 分钟
首页 Python笔记 正文
  1. def find_second_large_num(num_list):
  2. """
  3. 找出数组第2大的数字
  4. """
  5. # 方法一
  6. # 直接排序,输出倒数第二个数即可
  7. tmp_list = sorted(num_list)
  8. print("方法一\nSecond_large_num is :", tmp_list[-2])
  9. # 方法二
  10. # 设置两个标志位一个存储最大数一个存储次大数
  11. # two 存储次大值,one 存储最大值,遍历一次数组即可,先判断是否大于 one,若大于将 one 的值给 two,将 num_list[i] 的值给 one,否则比较是否大于two,若大于直接将 num_list[i] 的值给two,否则pass
  12. one = num_list[0]
  13. two = num_list[0]
  14. for i in range(1, len(num_list)):
  15. if num_list[i] > one:
  16. two = one
  17. one = num_list[i]
  18. elif num_list[i] > two:
  19. two = num_list[i]
  20. print("方法二\nSecond_large_num is :", two)
  21. # 方法三
  22. # 用 reduce 与逻辑符号 (and, or)
  23. # 基本思路与方法二一样,但是不需要用 if 进行判断。
  24. from functools import reduce
  25. num = reduce(lambda ot, x: ot[1] < x and (ot[1], x) or ot[0] < x and (x, ot[1]) or ot, num_list, (0, 0))[0]
  26. print("方法三\nSecond_large_num is :", num)
  27. if __name__ == '__main___':
  28. num_list = [34, 11, 23, 56, 78, 0, 9, 12, 3, 7, 5]
  29. find_second_large_num(num_list)
解压密码: detechn或detechn.com

免责声明

本站所有资源出自互联网收集整理,本站不参与制作,如果侵犯了您的合法权益,请联系本站我们会及时删除。

本站发布资源来源于互联网,可能存在水印或者引流等信息,请用户自行鉴别,做一个有主见和判断力的用户。

本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。

给定一个任意长度数组,实现一个函数
« 上一篇 01-31
阅读一下代码他们的输出结果是什么?
下一篇 » 01-31

发表评论

惪特博客
  • 文章总数:
    18497 篇
  • 评论总数:
    53306 条
  • 标签总数:
    8873 个
  • 总浏览量:
    22598662 次
  • 最后更新:
    3天前

最多点赞

随便看看

标签TAG