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) 

执行结果:

方法集锦4_列表_python

 

相关文章:

  • 2021-10-06
  • 2021-09-13
  • 2022-12-23
  • 2022-12-23
  • 2021-09-02
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-02-06
  • 2021-09-22
  • 2022-02-27
  • 2021-11-01
  • 2021-10-07
  • 2022-12-23
  • 2021-12-05
相关资源
相似解决方案