方法集锦4_列表_python

1.循环一次,求出列表的最小值和次小值出来

##求出最小值和次小值
dic = [33,5,7,21,7,9]
#初始化,a为最小,b为次小
a,b = max(dic),max(dic)

'''
大致思路:
1.首先初始化a和b,如果当前i比a更小,则b次小值 = a,a = i (此时i当做最小值,一直被替换)。注意:最小值在最后面,则if 这里就定义好了最小值和次小值,不走elif
2.如果最小值在前面出现,则a赋值最小值,后面不会出现小于a的值了,则走elif,如果小于,则b被替换。

'''
#O(n)时间复杂度,求出最小和次小
for i in dic:
    if i < a:
        b = a
        a = i
    elif i < b:
        b = i  

print(a,b) 

执行结果:

 

posted @ 2020-06-07 00:15  风不再来  阅读(115)  评论(0编辑  收藏  举报