python - 相同的指令,不同的结果

时间:2011-07-15 18:03:46

标签: python python-3.x

有人可以帮我理解下面的Python代码(python 3.2)中发生了什么吗?我真的很无能为力。

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 ?

谢谢。

1 个答案:

答案 0 :(得分:14)

Python 3.x中的

map()返回迭代器,而不是列表。第一次通过sum()消耗它,第二次没有留下任何东西。