2014-12-02 2 views
0

Я пытаюсь узнать, как использовать функции map() и filter() в Python, но когда я пытаюсь использовать их в visual studio, я получаю необычный выход для каждого из них. Я знаю, что код, вероятно, неправильный, но я не вижу, что он выводит, из-за чего сложно разобраться!Необычный вывод с использованием map() и filter() в Python

Заранее спасибо

фильтр()

import functools 

f = ["List", "of", "super", "crazily", "long", "words"] 

new = lambda a, b: a if (len(a) > b) else b 

print (filter(new, f)) 

Обслуживает: объект фильтра на 0x029AD5F0

карта()

import functools 

f = ["List", "of", "super", "crazily", "long", "words"] 

map_loop = map((lambda x: len(x)), f) 

print (type(map_loop), map_loop) 

Обслуживает: класс 'карта', карта объекта при 0x0243D5D0

+0

https://stackoverflow.com/questions/13638898/how-to-use-filter-map-and-reduce -in-python-3-3-0 –

+0

Обратите внимание, что 'filter' ожидает' function', который принимает * один аргумент *; это 'functools.reduce', для которого требуется' function' с двумя аргументами. – jonrsharpe

+0

Спасибо за это. Извините, похоже, что я работал из старого списка упражнений онлайн, если эти функции в значительной степени устарели. Извинения за обман. –

ответ

-1

вам нужно использовать list так:

print (type(map_loop), list(map_loop)) 

демо:

>>> f = ["List", "of", "super", "crazily", "long", "words"] 
>>> print(list(map(len,f)))  # no need of lembda, `len` is enough 
[4, 2, 5, 7, 4, 5] 
+0

plz указать причину ?? – Hackaholic

Смежные вопросы