小明问了我一个问题:
如何用python实现返回数组中第二大的数呢?
Sample Input:
2 3 6 6 5
Sample Output
5
我的代码如下:
if __name__ == '__main__':
# 输入数据
num_list = list(map(int, input().split()))
# 列表去重
num_list = list(set(num_list))
# 返回结果
max_num = max(num_list)
num_list.remove(max_num)
sec_max = max(num_list)
print(sec_max)
我的思路
首先,看到这道题的第一反应就是用循环,不过想到python有个特别的数据类型集合,于是就用集合尝试了一下,效果还不错。
- 将输入文本转化为列表
- 使用集合去重,再转化为列表
- 调用max函数返回列表中最大的数
- remove掉列表中最大的数
- 此时调用max函数返回列表中最大的数即为所求。
学习体会
学习了基本数据类型后的一次应用吧。算是投机取巧的办法,不过也过了所有的测试用例。在解决问题的过程中会有很大的收获,坚持学习,总会有进步的!