【python】關於min()函數和max()函數的內在原理


假如給你一個純數字的列表,讓你求出它的最大值和最小值,你會怎么辦呢?

在這里我想到了兩種方法:

  第一種就是將這個列表進行重新排列,讓它升序排列,那么升序排列之后第一個元素就是最小值最后一個就是最大值

lst = [1,3,5,2,8,6]
lst.sort()
print("最小值為: %d" % lst[0])
print("最大值為: %d" % lst[-1])

>>>最小值為: 1
>>>最大值為: 8

這個方法比較簡單,只是用的列表的重新排序就可以達到目的

 

  第二種就要用到python的兩個內置函數max()和min(),從字面意思就可以看得出來max()是求最大值的,min()是求最小值的

lst = [1,3,5,2,8,6]
print("最小值為: %d" % min(lst))
print("最大值為: %d" % max(lst))

>>>最小值為: 1
>>>最大值為: 8

這種方法就更簡單了,直接使用這兩個內置函數就可以了

 

  接下來我要說的就是min()函數和max()函數的內在原理,或者說是通過算法來實現求最大值和最小值

  大家先看代碼

 1 lst = [1,3,5,2,8,6]
 2 ma = lst[0] # 假設第0項就是最大值
 3 mi = lst[0]
 4 for el in lst:
 5     if el > ma:
 6         ma = el
 7     if el < mi:
 8         mi = el
 9 print("最小值為: %d" % mi)
10 print("最大值為: %d" % ma)

  在第二行我們假設列表的第0項就是它的最大值,然后遍歷這個列表,如果遍歷的值比我們假設的最大值還要的大話,我們就把這個值賦值給我們之前認為是最大值的變量

  然后同理假設第0項就是最小值,再做同樣的賦值操作

  這樣循環下去,我們當初假設的最小值就真的成了最小值,假設的最大值也真的成了最大值

  

  在這里最重要的就是這個假設思想. 假設第0項是最大值或者是最小值,這樣循環時來比較大小,比它大就將那個值賦值給它


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM