[Tutor] min() & mutable sequences

Andy W toodles@yifan.net
Thu, 20 Dec 2001 13:43:27 +0800


Hi people,

First to give some background: I have a list of instances, each has an
attributes "distance". I want to get the instance with the smallest
distance.

I have at present:-

robots=[...] #The ... is a whole lot of instances :)
closest=min([robot.distance for robot in robots])

Okay, I now have the closest *distance*.
Say more than one instance has the same distance, will min() return the
first instance with that smallest distance? Because if that is so, I could
then just get the related instance using:-

closest_index=[robot.distance for robot in robots].index(closest)
#Yeah, I used that list comprehension twice, this is just for demonstration,
though.
closest_robot=robots[closest_index]

Is there a better way to do it?

I guess I could iterate over the list, and keep a smallest distance variable
somewhere. I guess I've become somewhat of a list-comprehension-addict
*grin*

TIA,
Andrew