Найти - Пользователи
Полная версия: Скорее развлечение чем вопрос
Начало » Python для экспертов » Скорее развлечение чем вопрос
1
pTree
Потребовалось мне написать функцию нахождения максимальной длинны строки из списка строк. Другими словами имеем следующий список строк:
l = ['ab', 'bcd', 'cda', 'bababa', 'c']
после обработки функцией вышеуказанного списка на выходе должно быть число 6 соответсвующее длинне строки ‘bababa’

Собственно ничего сложного нет. Я сходу нарисовал вот такое решение
def maxLen(myList):
maxi = 0
for item in myList:
if maxi < len(item):
maxi = len(item)
return maxi
но уж больно страшно и коряво это выглядит :-(. Немного погодя родился такой вариант
def maxLen(myList):
return max(map(lambda x: len(x),myList))
коротко, лаконично, но с первого взгляда не поймешь что тут происходит. Без комментариев не обойтись.

Я вот тут подумал. Может уважаемые эксперты предложат, что-нибудь красивое и гармоничное?
regall
pTree
коротко, лаконично, но с первого взгляда не поймешь что тут происходит.
По-моему, в данном блоке кода само название функции наталкивает на то, что происходит… Вполне нормально с первого взгляда воспринимается.
truporez
возвращает строку максимальной длины.
max(myList, key=lambda item: len(item))
k0sh
def max_len(myList):
return len(reduce(lambda x, y: len(x)<len(y) and y or x , myList))
Ed
max()
Dimka665
max(map(len, l))
Dimka665
truporez
возвращает строку максимальной длины.
max(myList, key=lambda item: len(item))
можно просто max(l, key=len)
pTree
Похоже что
max(l, key=len)
гораздо лучше и понятнее чем у меня. Вот только мне нужна не самая длинная строка списка, а максимальная длинна строки, другими словами число.
len(max(l, key=len))
Вот так будет как раз то что мне надо.
Смущает только повторное применение len(). По сути мы два раза делаем одно и тоже (вычисляем длинну строки), но в любом случае этот вариант пока наиболее лаконичен и понятен.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB