Найти - Пользователи
Полная версия: определение максимальной длины элемента списка. одной строкой
Начало » Python для экспертов » определение максимальной длины элемента списка. одной строкой
1
pythonwin
Всем привет!

Пожалуйста, подскажите, как ниже описанный код записать одной строкой

l=[[1,2,3,4],[1,2,3],[1,2,3,4,5,6,7],[1,2]]; max=0
for x in l:
    if max<len(x): max=len(x)
pythonwin
http://forum.vingrad.ru/index.php?showtopic=108926&view=findpost&p=830382

max(map(len,[[1,2,3,4],[1,2,3],[1,2,3,4,5,6,7],[1,2]]))
ofigetitelno
А чем не устраивает вариант?
len(max(seq))
pythonwin
seq - это что?
slivlen
pythonwin
seq - это что?
seq - это твой список.
P.S. ofigetitelno - предложил действительно более простой способ.
pythonwin
len(max([[1,2,3,4],[1,2,3],[1,2,3,4,5,6,7],[1,2]]))
george
способ len(max(seq)) работает только для возрастающих последовательностей,
напр len(max([,,,])) == 4 !
так шо max(map(len.. - наиболее короткий из адекватных.
slivlen
george
способ len(max(seq)) работает только для возрастающих последовательностей,
напр len(max([,,,])) == 4 !
так шо max(map(len.. - наиболее короткий из адекватных.
Еще раз доказал, что программы необходимо тестировать на различных входных данных ;)
slivlen
Вот еще вариант в голову пришел:
max([len(i) for i in [,,,]])
ofigetitelno
гы…
дык вначале просили записать имеющийся (ниже описанный) код…
но по просьбе трудящихся (програмирующих), в 2.5 питоне в функцию max добавили параметр key,
и следовательно можно записать это безобразие ещё и таким образом:
len(max(seq, key=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