Уведомления

Группа в Telegram: @pythonsu

#1 Март 5, 2010 19:50:40

kzoi_py
От:
Зарегистрирован: 2009-02-01
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос о lambda

Доброго времени суток всем питонерам. По сабжу не эксперт по тому и спрашиваю. Есть 2 списка. Мне нужно получить массив ответов - есть ли конкретный элемент в другом списке. Пишу следующее

dl = [1,3,4,5,6,7,8,9]
z = map(lambda x,p: (x[i] in p ) for i in range(0, len(x)), [6,7,8],dl )
И не помогает ((( подскажите в чем проблема. За ранее спасибо



Офлайн

#2 Март 5, 2010 20:07:12

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос о lambda

dl = [1,3,4,5,6,7,8,9]
z = map(lambda x: (x, x in dl), [6,7,8,15])
print z
[(6, True), (7, True), (8, True), (15, False)]
Наверное так будет понятнее.
dl = [1,3,4,5,6,7,8,9]
z = [(x, x in dl) for x in [6,7,8,15]]
print z
[(6, True), (7, True), (8, True), (15, False)]



Отредактировано (Март 5, 2010 20:12:03)

Офлайн

#3 Март 5, 2010 20:08:21

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

вопрос о lambda

>>> [x in [6,7,8]  for x in dl]
[False, False, False, False, True, True, True, False]
>>> [(x, x in [6,7,8]) for x in dl]
[(1, False), (3, False), (4, False), (5, False), (6, True), (7, True), (8, True), (9, False)]

Отредактировано (Март 5, 2010 20:09:11)

Офлайн

#4 Март 5, 2010 20:11:19

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

вопрос о lambda

Если не специалист, то зачем такие ужасные конструкции используете. да еще и с ошибками.
Питон - очень выразительный и простой язык, на нем можно писать почти в терминах задачи.
Смотрите:
Есть 2 списка:
first =
second =
Нужно сформировать результат-список:
result =
В котором будут ответы есть ли элемент второго списка в первом.
Переберем элементы второго списка:
for elem in second:
Проверим есть ли элемент в first и добавим ответ в результат:
result.append(elem in first)
Выведем результат:
print result.



Офлайн

#5 Март 6, 2010 07:22:35

kzoi_py
От:
Зарегистрирован: 2009-02-01
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос о lambda

спасибо за ответы. просто задумался как такую задачу решить с помощью функционального программирования. учиться то надо ))



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version