Malinaizer
Апрель 21, 2009 13:27:15
Читаю книгу, и там есть такой пример.
a=
map((lambda x: x+3), a)
должно вернуть а ничего не происходит,как вернуть список, в чем засада?
cutwater
Апрель 21, 2009 13:41:36
Что-то вы делаете не так. У меня лично работает.
выложите весь скрипт плиз.
Malinaizer
Апрель 21, 2009 13:55:23
cutwater
Что-то вы делаете не так. У меня лично работает.
выложите весь скрипт плиз.
Это не большие примерчики из книги как работает и как лучше, возвращает список почему то только цикл for, пробую на питоне 2.6.2!
counters=
res=
for x in counters:
res.append(x+10)
res
def inc(x): return x+10
map(inc, counters)
map((lambda x: x+3), counters)
Malinaizer
Апрель 21, 2009 14:00:07
Malinaizer
Разобрался он работает в интерактивном режиме а когда файл запускаешь надо принт перед функцией ставить!))))
Dimka665
Апрель 21, 2009 14:54:39
map возвращает итератор вместо списка.
pyuser
Апрель 22, 2009 01:57:50
Dimka665
map возвращает итератор вместо списка.
Вы ничего не путаете? итератор возвращает imap из модуля itertools
Андрей Светлов
Апрель 22, 2009 02:59:53
В py3k возвращаемое значение мигировало из списка в итератор . Так что правы все :)
bw
Апрель 22, 2009 11:20:13
Вы всё не правильно делатете, питонист должен писать так:
>>> map((3).__add__, )
Лямба - для новичков :-).
p.s. Да, да. Я знаю, что истинный профи будет писать curry(operator.add, 3), но для этого нужен curry, как я понимаю, он пока ни в каком виде не включен в стандартный набор модулей?!
..bw
PooH
Апрель 22, 2009 11:34:07
bw
p.s. Да, да. Я знаю, что истинный профи будет писать curry(operator.add, 3), но для этого нужен curry, как я понимаю, он пока ни в каком виде не включен в стандартный набор модулей?!
from functools import partial
map(partial(operator.add, 3), [1,2,3,4])
bw
Апрель 22, 2009 11:35:26
Здорово, спасибо, не знал.
p.s. Это чудо появилось в 2.5, а я еще активно использую 2.4.
..bw