Python's most efficient way to choose longest string in list?

user104997 picture user104997 · May 16, 2009 · Viewed 192.7k times · Source

I have a list of variable length and am trying to find a way to test if the list item currently being evaluated is the longest string contained in the list. And I am using Python 2.6.1

For example:

mylist = ['abc','abcdef','abcd']

for each in mylist:
    if condition1:
        do_something()
    elif ___________________: #else if each is the longest string contained in mylist:
        do_something_else()

Surely there's a simple list comprehension that's short and elegant that I'm overlooking?

Answer

Paolo Bergantino picture Paolo Bergantino · May 16, 2009

From the Python documentation itself, you can use max:

>>> mylist = ['123','123456','1234']
>>> print max(mylist, key=len)
123456