# max() of a list of tuples

Max M maxm at mxm.dk
Tue Jan 21 13:30:39 CET 2003

```Mario Wehbrink wrote:
> Am Die, 21 Jan 2003 schrieb Max M in comp.lang.python:
>
>
>>Mario Wehbrink wrote:
>>
>>
>>>[maximum of list of tuples]
>>
>>
>>l = [(1,3,5), (8,16,2), (2,56,4)]
>>print max([(i[-1],i) for i in l])[1]
>>
>> >>> (1,3,5)
>
> Nice and elegant! Thanks. Although i don't understand how it works :-/

Here goes then!

# wont explain this one ;-)

l = [(1,3,5), (8,16,2), (2,56,4)]

# create a new list of 2 element tuples with last element of
# your tuples as the first value, and the actual tuple as the second.
# this is a standard idiom for sorting efficiently in Python

sList = [(i[-1],i) for i in l]
# sList = [(5,(1,3,5)), (2,(8,16,2)), (4,(2,56,4))]

# Because the first element is the most significant in a compare,
# python will get max value from that

maxElement = max(sList)
# maxElement = (5,(1,3,5))

# and to get the correct tuple I take the 2. element in maxElement

print maxElement[1]

>>> (1,3,5)

I hope that is more obvious

regards

--

hilsen/regards Max M

http://www.futureport.dk/
Fremtiden, videnskab, skeptiscisme og transhumanisme

```