Why map(print, a_list) doesn't work?

Viewed 10216

For a normal function, map works well:

def increment(n):
    return n+1
l = [1, 2, 3, 4, 5]
l = map(increment, l)
print l
>>> [2, 3, 4, 5, 6]

However, if it's print being put inside the map function:

l = [1, 2, 3, 4, 5]
l = map(print, l)
print l

python will complain:

l = map(print, l)
            ^
SyntaxError: invalid syntax

What makes print special? Doesn't print(x) also a valid function call? The above code are tested under python 2.7.

6 Answers
Related