![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
Всем привет!
Пожалуйста, подскажите, как ниже описанный код записать одной строкой
|
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
Все просто
|
|||
|
||||
| pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
а как вернуть самый длинный элеммент списка?
|
|||
|
||||
| albertn |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
Питон может все
|
||||
|
|||||
| pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
albertn, по каким правилам ты используешь эти функции - где можно прочитать подробно как правильно использовать and, or, map, reduce, filter, при этом используя их вместе?
|
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
У меня была толковая книга по питону, в которой только вкратце описывались эти функции. В основном я их изучал методом научного тыка и на чьих-то примерах (ковырялся в исходниках Zope). Если кому интересно, я могу привести примерный исходник этих функций |
|||
|
||||
| MAKCim |
|
||||||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
тут хорошая книга а вообще ничего сложного главное знать, что эти функции получают за аргументы и что возвращают тот же
reduce получает два параметра - последовательность и бинарную функцию сначала берется два первых элемента последовательности и передаются в функцию, затем результат этой функции и следующий элемент последовательности опять в нее передаются и так далее, пока не будет достигнут конец последовательности Бинарная функция в данном случае представлена lambda-функцией а синтаксис len(x)>=len(y) and x or y эквивалентен сишному
или shell-овскому
Это сообщение отредактировал(а) MAKCim - 23.8.2006, 10:10 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||||||
|
|||||||||||
| pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
||||
|
||||
| albertn |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
Я не проверял, но логика должна быть такая:
а также цепочка операторов and в случае истинности всех членов возвращает послендний элемент, а если есть хоть один ложный, то она возвращает первый ложный. С or все просто восзвращает первый истинный. Главное, никого и нивочто не преобразовывают. |
||||||
|
|||||||
| pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
albertn, странно, но думал что эти три функции реализованы в C. т.к. они читал, что они быстрее циклов.
|
|||
|
||||
| albertn |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 30 Всего: 34 |
Естественно они написаны на си, я просто привел алгоритм работы, никак не связанный с оригиналом. Ну не на си же мне питоновские функции описывать. |
|||
|
||||
| pythonwin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: 14 Всего: 36 |
||||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |