python 獲取列表中次大的數值.


需求:

1.寫個函數,把一組數字傳到函數中,然后取出最大值和次大值.

2.不能使用排序函數.

分析:

Q: list = [100,50,60,70,30,45] 怎么從這個列表中取出最大值?

A: 1. 我們可以取出list[0]這個值作為最大值(max_num)的參照.

 2. 用后續的值和最大值(max_num)做對比,比最大值(max_num)大的值,賦值給max_num,同時把原來的max_num賦值給second_num.

 3. 然后繼續做對比,比max_num大的值,重復第二步.比second_num大的值,賦值給second_num.

 4. 輸出最大值和次大值.

分析完成了,下面開始寫代碼了.

 

 1 def find_max_and_second_large_num(list):
 2     one = list[0]       # 最大
 3     second = 0       # 次大
 4     for i in range(1,len(list)): # 從第二個元素開始對比
 5        if list[i] > one:
 6            second =one
 7            one = list[i]
 8        elif list[i] > second:
 9            second = list[i]
10     return {"max":one, "second": second}
11 
12 
13 list = [100,50,60,70,30,45]
14 res = find_max_and_second_large_num(list)
15 print(res)
16 
17 代碼內容
代碼內容

 

輸出結果:
{'max': 100, 'second': 70}

 


免責聲明!

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



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