我正在尝试一个函数,我可以放入一个列表和一个指针,并让它将指针应用于列表中的对象,以便为该对象提供该指针的最低值。
def GetLowest(ListObject,Value):
ObjectX=ListObject[0]
for i in ListObject:
if i.Value<=ObjectX.Value:
ObjectX=i
return ObjectX
然后我可以做一些事情(假设我有这些对象的列表)GetLowest(Rectangles,Area)
并检查每个矩形的区域。或者像GetLowest(Backpacks,Wearer.ShoeSize)
这样更复杂的东西。
我打算在我的程序周围的几个地方使用它。 先谢谢你,伙计们!
答案 0 :(得分:4)
在我看来,您希望使用内置min
功能。 min
采用可迭代(例如列表)并返回最小元素。您还可以为其指定一个key
函数来进行比较。
e.g:
smallest_rectangle = min(list_of_rectangles,key=lambda rect:rect.area)
backpack_with_small_shoes = min(backpacks,key=lambda b: b.wearer.shoe_size)
operator
模块中的各种功能在这里也很有用。例如,上面的第一个语句可以写成:
from operator import attrgetter
smallest_rectangle = min(list_of_rectangles,key=attrgetter('area'))