python难度大的题_【python】Python面试题:求列表当中最大的三个元素

在牛客网https://www.nowcoder.com/上刷题遇到如何从list中取得最大的三个值:自己写的方法复杂度太高,放上大牛的方法,复杂度很低。看了好几遍才体会到大概的精髓。

'''

从list中取出最大的三个值

__author__:无名

'''

def FindList3MaxNum(foo):

max1, max2, max3 = None, None, None

for num in foo:

if max1 is None or max1 < num:

max1, num = num, max1

if num is None:

continue

if max2 is None or num > max2:

max2, num = num, max2

if num is None:

continue

if max3 is None or num > max3:

max3 = num

return max1, max2, max3

if __name__ == '__main__':

foo = [78, 23, 10, 56, 4, 103, 89, 14]

max1, max2, max3 = FindList3MaxNum(foo)

print(max1, max2, max3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值