Lambda Mu
Lambda Mu

Reputation: 293

python - same instruction, different outcome

Could someone help me understand what is going on in the following Python code (python 3.2)? I'm really clueless here.

import sys
u = sys.stdin.readline()
   # try entering the string "1 2 3" 
r = map(lambda t: int(t.strip()),u.split())
print(sum(r)) # prints 6
print(sum(r)) # prints 0 ?

Thank you.

Upvotes: 7

Views: 197

Answers (1)

Ignacio Vazquez-Abrams
Ignacio Vazquez-Abrams

Reputation: 798616

map() in Python 3.x returns an iterator, not a list. Putting it through sum() the first time consumes it, leaving nothing for the second time.

Upvotes: 14

Related Questions