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