In Python 2 [filter](<https://docs.python.org/2/library/functions.html#filter>), [map](<https://docs.python.org/2/library/functions.html#map>) and [zip](<https://docs.python.org/2/library/functions.html#zip>) built-in functions return a sequence. map and zip always return a list while with filter the return type depends on the type of given parameter:

>>> s = filter(lambda x: x.isalpha(), 'a1b2c3')
>>> s
'abc'
>>> s = map(lambda x: x * x, [0, 1, 2])
>>> s
[0, 1, 4]
>>> s = zip([0, 1, 2], [3, 4, 5])
>>> s
[(0, 3), (1, 4), (2, 5)]

In Python 3 [filter](<https://docs.python.org/3.5/library/functions.html#filter>), [map](<https://docs.python.org/3.5/library/functions.html#map>) and [zip](<https://docs.python.org/3.5/library/functions.html#zip>) return iterator instead:

>>> it = filter(lambda x: x.isalpha(), 'a1b2c3')
>>> it
<filter object at 0x00000098A55C2518>
>>> ''.join(it)
'abc'
>>> it = map(lambda x: x * x, [0, 1, 2])
>>> it
<map object at 0x000000E0763C2D30>
>>> list(it)
[0, 1, 4]
>>> it = zip([0, 1, 2], [3, 4, 5])
>>> it
<zip object at 0x000000E0763C52C8>
>>> list(it)
[(0, 3), (1, 4), (2, 5)]

Since Python 2 [itertools.izip](<https://docs.python.org/2.7/library/itertools.html#itertools.izip>) is equivalent of Python 3 zip izip has been removed on Python 3.