### 题目: ###
** 假定 list1 = \[1, 3, 2, 6, 9, 8\] ,找出数组中次大值(或第二大值),不能使用内置方法,只能遍历一遍。**
### 思路: ###
**设置两个标志位一个是one存储最大数,另一个two存储次大数。遍历一次数组即可,先判断是否大于one,若大于将one的值给two,将list1\[i\]的值给one;否则比较是否大于two,若大于直接将list1\[i\]的值给two;否则pass。**
### 编码实现: ###
**方法一:不符合题目要求知道这种方法就行**
def find_second_largest(list1):
# 找出数组中第2大的数
tmp_list = sorted(list1)
return tmp_list[-2]
num_list = [3, 2, 6, 4, 8, 9, 13]
print(find_second_largest(num_list)) # 输出结果:9
** 方法二:推荐**
def find_second_largest(list1):
# 找出数组中第2大值
one = list1[0]
two = list1[0]
for i in range(1, len(list1)):
if list1[i] > one:
two = one
one = list1[i]
elif list1[i] > two:
two = list1[i]
else:
pass
return two
num_list = [3, 2, 6, 4, 8, 9, 13]
print(find_second_largest(num_list)) # 输出结果:9