Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 23, 2006 08:58:06

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

определение максимальной длины элемента списка. одной строкой

Всем привет!

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

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)



Офлайн

#2 Авг. 23, 2006 10:37:22

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

определение максимальной длины элемента списка. одной строкой

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]]))



Офлайн

#3 Авг. 23, 2006 14:46:32

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

определение максимальной длины элемента списка. одной строкой

А чем не устраивает вариант?

len(max(seq))



Офлайн

#4 Авг. 23, 2006 14:51:08

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

определение максимальной длины элемента списка. одной строкой

seq - это что?



Офлайн

#5 Авг. 23, 2006 14:59:31

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

определение максимальной длины элемента списка. одной строкой

pythonwin
seq - это что?
seq - это твой список.
P.S. ofigetitelno - предложил действительно более простой способ.



Офлайн

#6 Авг. 23, 2006 15:03:45

pythonwin
От:
Зарегистрирован: 2006-07-18
Сообщения: 1294
Репутация: +  0  -
Профиль   Отправить e-mail  

определение максимальной длины элемента списка. одной строкой

len(max([[1,2,3,4],[1,2,3],[1,2,3,4,5,6,7],[1,2]]))



Офлайн

#7 Авг. 28, 2006 10:10:51

george
От:
Зарегистрирован: 2006-06-19
Сообщения: 55
Репутация: +  0  -
Профиль   Отправить e-mail  

определение максимальной длины элемента списка. одной строкой

способ len(max(seq)) работает только для возрастающих последовательностей,
напр len(max([,,,])) == 4 !
так шо max(map(len.. - наиболее короткий из адекватных.



Офлайн

#8 Авг. 28, 2006 10:26:45

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

определение максимальной длины элемента списка. одной строкой

george
способ len(max(seq)) работает только для возрастающих последовательностей,
напр len(max([,,,])) == 4 !
так шо max(map(len.. - наиболее короткий из адекватных.
Еще раз доказал, что программы необходимо тестировать на различных входных данных ;)



Офлайн

#9 Авг. 28, 2006 10:38:42

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

определение максимальной длины элемента списка. одной строкой

Вот еще вариант в голову пришел:
max([len(i) for i in [,,,]])



Офлайн

#10 Авг. 28, 2006 14:29:33

ofigetitelno
От:
Зарегистрирован: 2006-08-01
Сообщения: 136
Репутация: +  0  -
Профиль   Отправить e-mail  

определение максимальной длины элемента списка. одной строкой

гы…
дык вначале просили записать имеющийся (ниже описанный) код…
но по просьбе трудящихся (програмирующих), в 2.5 питоне в функцию max добавили параметр key,
и следовательно можно записать это безобразие ещё и таким образом:
len(max(seq, key=len))
:)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version