Самый эффективный способ Python выбрать самую длинную строку в списке?

У меня есть список переменной длины, и я пытаюсь найти способ проверить, является ли элемент списка, который в настоящее время оценивается, самой длинной строкой, содержащейся в списке. И я использую Python 2.6.1

Например:

mylist = ['123','123456','1234'] for each in mylist: if condition1: do_something() elif ___________________: #else if each is the longest string contained in mylist: do_something_else() 

Я новичок в python, и я уверен, что у меня просто мозговой пердит. Несомненно, есть простое понимание списка, которое является коротким и изящным, что я пропускаю?

Благодаря!

6 Solutions collect form web for “Самый эффективный способ Python выбрать самую длинную строку в списке?”

В самой документации Python вы можете использовать max :

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

Что должно произойти, если есть более одной длинной строки (подумайте «12» и «01»)?

Попробуйте, чтобы получить самый длинный элемент

 max_length,longest_element = max([(len(x),x) for x in ('a','b','aa')]) 

И затем регулярный foreach

 for st in mylist: if len(st)==max_length:... 

len(each) == max(len(x) for x in myList) или только each == max(myList, key=len)

Чтобы получить наименьший или самый большой элемент в списке, используйте встроенные функции min и max:

 lo = min(L) hi = max(L) As with sort (see below), you can pass in a key function 

который используется для сопоставления элементов списка перед их сопоставлением:

 lo = min(L, key=int) hi = max(L, key=int) 

http://effbot.org/zone/python-list.htm

Похоже, вы можете использовать функцию max, если вы правильно ее сопоставляете для строк и используете это как сравнение. Я бы рекомендовал просто найти max один раз, хотя, конечно, не для каждого элемента в списке.

 def longestWord(some_list): count = 0 #You set the count to 0 for i in some_list: # Go through the whole list if len(i) > count: #Checking for the longest word(string) count = len(i) word = i return ("the longest string is " + word) 

или намного проще:

 max(some_list , key = len) 
 def LongestEntry(lstName): totalEntries = len(lstName) currentEntry = 0 longestLength = 0 while currentEntry < totalEntries: thisEntry = len(str(lstName[currentEntry])) if int(thisEntry) > int(longestLength): longestLength = thisEntry longestEntry = currentEntry currentEntry += 1 return longestLength 
  • как получить кортежи из списков, используя понимание списка в python
  • фильтрация элементов из списка списков в Python?
  • Учет списка, проверьте, уникален ли элемент
  • Попытка понимания списка Python с двумя переменными разных диапазонов
  • Элегантный способ получить hashtags из строки в Python?
  • Python для понимания словарей в словарях?
  • Удалите четное / нечетное число из нечетного / четного списка Python.
  • список вызовов функции, использующей понимание списка
  •  
    Interesting Posts for Van-Lav

    Поиск первого ненулевого значения вдоль оси сортированной двумерной матрицы numpy

    Инициализировать строковую переменную в Python: "" или Нет?

    Нужен ли мне общедоступный веб-сервер для использования API маркетинга Facebook Facebook?

    функция в функции

    заменяя элементы списка, которые соответствуют условию в лямбда

    Статические файлы Django – файл CSS не загружается

    ImportError: /usr/lib/libboost_python.so.1.54.0: undefined symbol: PyClass_Type

    Существуют ли какие-либо деревья radix / patricia / critbit для Python?

    pandas: установка последних N строк мультииндекса на Nan для ускорения группировки со сдвигом

    Постройте массив дат на прошлой неделе, на этой неделе и на следующей неделе

    Python – Рекомендуемая среда IDE для удаленного развития

    Использование предварительно обученного вложения слов (word2vec или Glove) в TensorFlow

    Поиск хоста с MAC-адресом с использованием Python

    cx_Oracle: ImportError: Ошибка загрузки DLL: это приложение не выполнено

    Не удается установить pylearn2 на WinPython-64bit-3.4.4.1

    Python - лучший язык программирования в мире.