ในลิสต์ของลิสต์ (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 (น้อยสุด)