Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > записать код в одну строку формирование&передачу


Автор: pythonwin 16.2.2007, 13:19
помогите пожалуйста записать следующий код в одну строку:
Код

z = 0
for x in xrange(10):
    l=[]
    for y in xrange(4):
        z+=1
        l+=['%s'%(z)]
    app_1(l)


код упрощён

Автор: albertn 16.2.2007, 13:27
Если я все правильно понял, то так:
Код

[app_1([str(y+1) for y in xrange(x*4,(x+1)*4)]) for x in xrange(10)]


Добавлено @ 13:30 
Или даже так:
Код

[app_1([str(x*4+y+1) for y in xrange(4)]) for x in xrange(10)]

Автор: pythonwin 16.2.2007, 13:34
albertn, спасибо
++1

Автор: diam 16.2.2007, 14:00
А куда делась z? smile

Автор: pythonwin 16.2.2007, 14:06
в 
Код

[app_1([str(x*4+y+1) for y in xrange(4)]) for x in xrange(10)]

z заменена на x*4+y+1

Автор: sir_Jack 17.2.2007, 12:46
Цитата(pythonwin @  16.2.2007,  13:19 Найти цитируемый пост)
записать следующий код в одну строку


вопрос не по теме, но зачем? smile 

Автор: V.A.KeRneL 17.2.2007, 12:55
Цитата(sir_Jack @  17.2.2007, 12:46 Найти цитируемый пост)

вопрос не по теме, но зачем? smile

Ответ, соответственно, тоже: так круччэ-э-э!!! smile

А если серьёзно, то мож сайз-контест какой-нить проходит...

Автор: pythonwin 17.2.2007, 13:25
Цитата(sir_Jack @  17.2.2007,  15:46 Найти цитируемый пост)

вопрос не по теме, но зачем? smile


Цитата(V.A.KeRneL @  17.2.2007,  15:55 Найти цитируемый пост)
Ответ, соответственно, тоже: так круччэ-э-э!!! smile

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

Автор: cherep 20.2.2007, 02:41
Цитата(pythonwin)

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


Извини, но это глупо. Читабельность только падает. А еще падает надежность такого кода, например, скажи мне как ты будешь отлаживать такую конструкцию в режиме отладчика, ведь она выполнится как одно целое.
Короче, ботать import this до полного усвоения. 

PS. Гвидо не зря очень хотел избавиться от lambda и компании, именно из-за таких вот оптимизаций.

Автор: pythonwin 20.2.2007, 07:44
Цитата(cherep @  20.2.2007,  05:41 Найти цитируемый пост)


Извини, но это глупо. Читабельность только падает. А еще падает надежность такого кода, например, скажи мне как ты будешь отлаживать такую конструкцию в режиме отладчика, ведь она выполнится как одно целое.

1) отладчик? отлаживаю код в shell и запускаю, а в стандарном idle в питоне нет отладчика подобного дельфям (а ошибки он и так показывает), хотя в PyScripter там чуть получше
1) в этой теме == http://forum.vingrad.ru/topic-113612/view-all.html есть неплохой код для программиста, которая села на питон 5-6 дней до написания http://forum.vingrad.ru/act-Attach/type/post/id-868477.html - вроде код простой и читабельность высокая если ссылаться на  
Цитата(cherep @  20.2.2007,  05:41 Найти цитируемый пост)
Извини, но это глупо. Читабельность только падает
, но читать его очень сложно - в глазах всё мерцает, ответ можно найти http://forum.vingrad.ru/index.php?showtopic=113612&view=findpost&p=869140

Цитата(cherep @  20.2.2007,  05:41 Найти цитируемый пост)
PS. Гвидо не зря очень хотел избавиться от lambda и компании, именно из-за таких вот оптимизаций. 

в питоне 2,5 таких оптимизаций становиться больше чем в 2,4 smile

PS код этого примера приводить не стал приводить не стал - просто не поместиться smile
http://forum.vingrad.ru/index.php?showtopic=113612&view=findpost&p=873702 smile


Автор: setq 20.2.2007, 09:00
В данном случае соглашусь с cherepом. Читаемость слегка упала.

Автор: pythonwin 20.2.2007, 10:03
Цитата(setq @  20.2.2007,  12:00 Найти цитируемый пост)
В данном случае соглашусь с cherepом. Читаемость слегка упала. 

здесь в теме был только два вложенных цикла (код из 7 строк), а если их больше и код в сотни строк, где основную часть занимает работа со списками, их проверки? При этом главная часть (сама логикика) всего строк 10, в этом случае стараешься разделять на MVC и "побочная часть", которая отвечает за обработку данных полученных от представления (проверка) и передача данных в представление от основной логики не попадает ни в модель, ни в представление, IMHO
+ сама логика засоряется -> выносим проверку и формирование данных в одельные модули и в отдельные функции (или в методы классов - это кому как нравиться), а потом выясняется что эти проверки/преобразования занимают больше строк кода чем модель или логика, при этом в этих проверках/преобразованиях в основном циклы и условия и работа со словарями и списками, при этом обычно один раз отладил в shell этот код и потом много раз используешь =>  оптимизация кода редко нужна в небольших задачах - напоминаю здесь в начале темы был приведен сильно упрощенный код заурядной для меня задачи

PS по началу тоже был противником использования ФП, но потом попробовав его на своих задачах распробовал, но стараюсь использовать его только там где это необходимо

Автор: setq 20.2.2007, 10:26
Цитата(pythonwin @  20.2.2007,  10:03 Найти цитируемый пост)
по началу тоже был противником использования ФП <...>


Я нет.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)