max() of a list of tuples

Alan Daniels from_deja at
Thu Jan 23 21:37:49 CET 2003

Max M <maxm at> wrote in message news:<3E2D2E46.6060104 at>...

> l = [(1,3,5), (8,16,2), (2,56,4)]
> print max([(i[-1],i) for i in l])[1]

Another possible solution, using a slightly different route:

  best = max([x[-1] for x in l])
  print [x for x in l if x[-1] == best][0]

Line one: Find the max value for the last item in each of the tuples.
Line two: Get the tuple that has that max value.

Slightly less efficient, since it uses two list comprehensions, and thus
traverses the lists twice, but easier to understand at first glance, imho.

More information about the Python-list mailing list