怎样找第二大的数,python
答案:2 悬赏:50 手机版
解决时间 2021-03-23 04:36
- 提问者网友:城市野鹿
- 2021-03-23 01:46
怎样找第二大的数,python
最佳答案
- 五星知识达人网友:摆渡翁
- 2021-03-23 02:54
# 方法一,直接排序然后取倒数第个元素
sorted(num_list)[-2]
# 方法二,用标准库中堆模块中的nlargest方法
>>> import heapq
>>> num_list = [10,1,2,3,4,5,6,7,8,9,0]
>>> heapq.nlargest(2, num_list)
[10, 9]
>>>
# 方法三,如果不准用内置方法,自己写个算法。
def second_large(num_list):
"""find second largest num in a list.
>>> second_large([1,2,0])
1
>>> second_large([1,2,3,0])
2
>>> second_large([1,3,2,0])
2
>>> second_large([10,1,2,3,4,5,6,7,8,9,0])
9
>>> second_large([1,9,2,3,4,5,6,7,8,10,0])
9"""
iterator = iter(num_list)
largest, second = 0, 0
while True:
num = next(iterator)
if num == 0:
break
elif num > largest:
largest, second = num, largest
elif num > second:
largest, second = largest, num
return second
if __name__ == '__main__':
import doctest
doctest.testmod()
sorted(num_list)[-2]
# 方法二,用标准库中堆模块中的nlargest方法
>>> import heapq
>>> num_list = [10,1,2,3,4,5,6,7,8,9,0]
>>> heapq.nlargest(2, num_list)
[10, 9]
>>>
# 方法三,如果不准用内置方法,自己写个算法。
def second_large(num_list):
"""find second largest num in a list.
>>> second_large([1,2,0])
1
>>> second_large([1,2,3,0])
2
>>> second_large([1,3,2,0])
2
>>> second_large([10,1,2,3,4,5,6,7,8,9,0])
9
>>> second_large([1,9,2,3,4,5,6,7,8,10,0])
9"""
iterator = iter(num_list)
largest, second = 0, 0
while True:
num = next(iterator)
if num == 0:
break
elif num > largest:
largest, second = num, largest
elif num > second:
largest, second = largest, num
return second
if __name__ == '__main__':
import doctest
doctest.testmod()
全部回答
- 1楼网友:未来江山和你
- 2021-03-23 03:22
先排序,在取第2个数
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯