首页 > 编程语言 >python实现找到列表中第二大的数字

python实现找到列表中第二大的数字

时间:2022-09-29 20:56:25浏览次数:48  
标签:le 数字 python max 最大值 列表 second num else

'''给定一个长度大于3的列表,里面数字是无序的,且数字不重复,如何找到第二大的数字?
例如列表a = [1, 3, 6, 2, 7, 9],找到的结果就应该是:7

下面给出六种解决方案'''
a = [1, 3, 6, 2, 7, 9]

# 以下是使用内置方法的策略
# 1 使用sorted排序,再取倒数第二个下标值
print(sorted(a)[-2])

# 2 使用sort排序,再取倒数第二个下标值
a.sort()
print(a[-2])

# 3 先取出最大值,删除,再取最大值
max_num = max(a)
a.remove(max_num)
print(max(a))

# 以下是不使用内置方法的策略
# 4 使用两个for循环,第一个先找最大值,删除最大值,然后再找最大值

def get_second_max_num(a)
	num = a[0]
	for i in a:
		if i > num:
			num = i
	a.remove(num)
	res = a[0]
	for j in a:
		if j > res:
			res = j
	return res

  

# 5 使用两个数字分别表示最大数和第二大数,然后一次for循环进行遍历,比较后再进行赋值

def get_second_max_num2(a)
	le = len(a)
	if a[0] > a[1]:
		max_num = a[0]
		second_max_num = a[1]
	else:
		max_num = a[1]
		second_max_num = a[0]
	for i in range(2, le):
		if a[i] > max_num:
			second_max_num = max_num
			max_num = a[i]
		else:
			if a[i] > second_max_num:
				second_max_num = a[i]
	return second_max_num

  

# 6 使用两个数字分别表示最大数和第二大数,然后一次while循环进行遍历,比较后再进行赋值

def get_second_max_num3(a)
	le = len(a)
	if a[0] > a[1]:
		max_num = a[0]
		second_max_num = a[1]
	else:
		max_num = a[1]
		second_max_num = a[0]
	i = 2
	while i < le:
		if a[i] > max_num:
			second_max_num = max_num
			max_num = a[i]
		else:
			if a[i] > second_max_num:
				second_max_num = a[i]
		i += 1
	return second_max_num

  

标签:le,数字,python,max,最大值,列表,second,num,else
From: https://www.cnblogs.com/mtck/p/16743036.html

相关文章

  • Python基础7
    今日内容概要数据类型内置方法理论整型相关操作浮点型相关操作字符串相关操作列表相关操作可变与不可变今日内容详细数据类型内置方法理论数据类型......
  • 使用场景可选,计费方式灵活,华为云ECS成企业数字化升级利器!
    近年来,政企数字化转型热情持续高涨,不少企业在看到首批进行数字化转型、启用云服务的企业能够从容应对疫情反复和经济形势不明朗的市场挑战之后,纷纷走上了市场转型之路,而且随......
  • Python3安装psutil报错
    报错:pip3installpsutilcompilationterminated.error:command'gcc'failedwithexitstatus1解决:yuminstallpython3-devel继续安装:[root@centos......
  • 快手Python笔试题【杭州多测师】【杭州多测师_王sir】
    deftest():foriinrange(10):ifi%2!=0:print("helloworld")else:passtest()#调用函数packagecom.duoc......
  • 学习python-Day66
    今日学习内容前后端开发模式API接口postman使用序列化和反序列化restful规范drf:第三方app>>>快速实现符合restful规范的接口视图类,都是继承APIView......
  • python如何制作并安装自建包?
    一、依赖首先检查python是否安装了wheel、setuptools包,没有则使用pip安装pipinstallwheel--force-reinstallpipinstallsetuptools--force-reinstall 二、准......
  • C++ 调用python方法
    主流方法将python程序编程文本形式的动态链接库,在c/c++程序中调用其中定义的函数。本质上是在c++中启动了一个python解释器,由解释器对python相关的代码进行执行,执行......
  • Python基础
    1.为什么学习Python2.Python和其他语言的区别从三个方面看Python语言特点语言类型第三方库3.Python的优势4.Python的解释器种类?5.python2和python3区别6.深拷贝......
  • Python面向对象
    1.面向对象2.什么是类和类变量?3.实例和实例化以及实例变量4.数据成员5.方法和静态方法以及类方法6.什么是方法重写7.__init__8.self9.类的初始化:new()和i......
  • Python数据库编程
    1.什么是MySQLdb?2.如何连接数据库?3.如何创建数据库表?4.如何执行数据插入?5.如何执行数据库查询操作?6.如何更新数据库数据?7.如何删除数据库数据?8.如何使用数据库事......