python-相同的指令,不同的结果
有人能帮我理解下面的Python代码(Python3.2)中发生了什么吗?我在这里真的不懂python-相同的指令,不同的结果,python,python-3.x,Python,Python 3.x,有人能帮我理解下面的Python代码(Python3.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 ? 谢谢。Python3.x中的map()返回迭代器,而不是列表。第一
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 ?
谢谢。Python3.x中的
map()
返回迭代器,而不是列表。第一次通过sum()
会消耗它,第二次什么都不会留下。要补充这个答案:如果你想把结果作为一个列表保存,那么改为做r=list(map(…)
。@实际上,列表理解可能会更清晰这当然是真的。当然,首先使用它会更干净。:-)谢谢你的快速回复。