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

Python - หาแถวที่มีความต่าง Min-Max น้อยที่สุด

ในลิสต์ของลิสต์ (Matrix) หา Row ที่มีความต่างระหว่างค่าสูงสุดและต่ำสุด (Range) น้อยที่สุด

ตัวอย่างโค้ด

my_list = [[41, 1, 38], [25, 33, 1], [13, 44, 65], [1, 22]]
print("The list is : ")
print(my_list)

my_min_val = min([max(elem) - min(elem) for elem in my_list])
my_result = [elem for elem in my_list if max(elem) - min(elem) == my_min_val]

print("The result is : ")
print(my_result)

ผลลัพธ์

The list is : [[41, 1, 38], [25, 33, 1], [13, 44, 65], [1, 22]]
The result is : [[1, 22]]

คำอธิบาย

  • List Comprehension: [max(e)-min(e) for e in my_list] หา Range แต่ละ Row
  • min(...) หา Range ที่น้อยที่สุด
  • List Comprehension อีกครั้ง: กรอง Row ที่ Range เท่ากับ Min
  • Row [1,22]: Max=22, Min=1, Diff=21 (น้อยสุด)