Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 21, 2009 13:27:15

Malinaizer
От:
Зарегистрирован: 2009-03-28
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция map

Читаю книгу, и там есть такой пример.
a=
map((lambda x: x+3), a)
должно вернуть а ничего не происходит,как вернуть список, в чем засада?



Офлайн

#2 Апрель 21, 2009 13:41:36

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Функция map

Что-то вы делаете не так. У меня лично работает.
выложите весь скрипт плиз.



Офлайн

#3 Апрель 21, 2009 13:55:23

Malinaizer
От:
Зарегистрирован: 2009-03-28
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция map

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)



Офлайн

#4 Апрель 21, 2009 14:00:07

Malinaizer
От:
Зарегистрирован: 2009-03-28
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция map

Malinaizer
Разобрался он работает в интерактивном режиме а когда файл запускаешь надо принт перед функцией ставить!))))



Офлайн

#5 Апрель 21, 2009 14:54:39

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция map

map возвращает итератор вместо списка.



Офлайн

#6 Апрель 22, 2009 01:57:50

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Функция map

Dimka665
map возвращает итератор вместо списка.
Вы ничего не путаете? итератор возвращает imap из модуля itertools



Офлайн

#7 Апрель 22, 2009 02:59:53

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Функция map

В py3k возвращаемое значение мигировало из списка в итератор . Так что правы все :)



Офлайн

#8 Апрель 22, 2009 11:20:13

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Функция map

Вы всё не правильно делатете, питонист должен писать так:

>>> map((3).__add__, )

Лямба - для новичков :-).

p.s. Да, да. Я знаю, что истинный профи будет писать curry(operator.add, 3), но для этого нужен curry, как я понимаю, он пока ни в каком виде не включен в стандартный набор модулей?!

..bw



Офлайн

#9 Апрель 22, 2009 11:34:07

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Функция map

bw
p.s. Да, да. Я знаю, что истинный профи будет писать curry(operator.add, 3), но для этого нужен curry, как я понимаю, он пока ни в каком виде не включен в стандартный набор модулей?!
from functools import partial

map(partial(operator.add, 3), [1,2,3,4])



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#10 Апрель 22, 2009 11:35:26

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Функция map

Здорово, спасибо, не знал.

p.s. Это чудо появилось в 2.5, а я еще активно использую 2.4.

..bw



Отредактировано (Апрель 22, 2009 11:37:26)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version