powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / задачка с хабра
4 сообщений из 4, страница 1 из 1
задачка с хабра
    #36791712
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на хабре обсуждают причуды яп.
в комментах появилась задачка
Python.

HoneymanМеня коллега как-то порадовал. Думаете, вы понимаете лямбда-функции? Я тоже думал.

Сделаем список из, допустим, семи одноаргументных лямбда-функций, такой, что каждая функция возводит свой аргумент в соответствующую степень. Ну, в смысле, лямбда-функция по индексу 6 возводит свой аргумент в шестую степень.

Код: plaintext
powers = [lambda x: x ** i for i in xrange( 7 )]


Да?

А вот нет. Если посчитать с помощью такого списка, квадрат от тройки ( print powers[2](3) ), то получится 729, а вовсе не 9.

А исправить создание такого списка тоже можно красиво. Добавлением четырёх (значащих) символов.

задачку решил через 15 мин, ответ в спойлере, может кому интересно самому решить.
Код: plaintext
powers = [lambda x: x ** i for i in xrange( 7 ) if i]

внимание вопрос: почему оно не работает в изначальной версии - я догадываюсь, но почему работает после исправления - не понимаю.
...
Рейтинг: 0 / 0
задачка с хабра
    #36791877
toto66
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ZyK_BotaN
внимание вопрос: почему оно не работает в изначальной версии - я догадываюсь,
потому что i равно 6. поэтому все лямбды возводят в степень 6.
ZyK_BotaN
но почему работает после исправления - не понимаю.
у меня оба примера работают одинаково, т.е. неправильно:) python 2.5.1 какая версия у вас?
...
Рейтинг: 0 / 0
задачка с хабра
    #36791887
toto66
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А правильный ответ у меня получился такой:
Код: plaintext
powers = [lambda x,i=i: x ** i for i in xrange( 7 )]
...
Рейтинг: 0 / 0
задачка с хабра
    #36792095
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
toto66
у меня оба примера работают одинаково, т.е. неправильно:) python 2.5.1 какая версия у вас?
вроде вчера веществ не употреблял, но оно работало.
а почему работало - был для меня вопрос.
ща ввожу этот текст, и не пашет.
теперь все прояснилось.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / задачка с хабра
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]