Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - ระบุรายการจำนวนเต็ม ค้นหาจำนวนสูงสุดที่สามหากมีอยู่


เมื่อต้องการค้นหาค่าสูงสุดอันดับสามในรายการจำนวนเต็ม จะมีการกำหนดเมธอดที่รับรายการเป็นพารามิเตอร์ มันเริ่มต้นรายการตัวเลขทศนิยมเป็นอนันต์ ค่าในรายการจะถูกทำซ้ำ และเปรียบเทียบกับค่าอนันต์ ขึ้นอยู่กับผลลัพธ์ ผลลัพธ์จะแสดงบนคอนโซล

ตัวอย่าง

ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน

def third_max_num(my_num):
   my_result = [float('-inf'), float('-inf'), float('-inf')]
   for num in my_num:
      if num not in my_result:
         if num > my_result[0]: my_result = [num, my_result[0], my_result[1]]
         elif num > my_result[1]: my_result = [my_result[0], num, my_result[1]]
         elif num > my_result[2]: my_result = [my_result[0], my_result[1], num]
   if float('-inf') in my_result:
      print(max(my_num))
   else:
      print(my_result[2])

my_list = [45, 31, 78, 9, 0, 54, 12, 18]
print("The list is :")
print(my_list)
print("The third maximum number is :")
third_max_num(my_list)

ผลลัพธ์

The list is :
[45, 31, 78, 9, 0, 54, 12, 18]
The third maximum number is :
45

คำอธิบาย

  • มีการกำหนดเมธอดชื่อ 'third_max_num' ซึ่งรับรายการเป็นพารามิเตอร์

  • รายการค่าจุดทศนิยมสามค่าของอินฟินิตี้ถูกกำหนดไว้แล้ว

  • ค่าในรายการจะถูกทำซ้ำ และถ้าตัวเลขในรายการไม่มีอยู่ในรายการจำนวนอนันต์ ค่าในรายการจะถูกเปรียบเทียบกับองค์ประกอบแรกของรายการอนันต์

  • หากองค์ประกอบรายการมากกว่า ผลลัพธ์จะเป็นรายการของตัวเลข ค่าแรกและค่าที่สองจากรายการอนันต์

  • ทำสิ่งเดียวกันสำหรับค่าอนันต์ทั้งสามของรายการ

  • หากค่าอนันต์ปรากฏอยู่ในผลลัพธ์สุดท้าย ค่าสูงสุดของตัวเลขเหล่านี้จะแสดงเป็นเอาต์พุต

  • นอกฟังก์ชัน รายการถูกกำหนดและแสดงบนคอนโซล

  • เมธอดนี้เรียกโดยส่งรายการนี้เป็นพารามิเตอร์

  • เอาต์พุตจะแสดงบนคอนโซล