百度已收录

正文

近日学习python,发现了很有意思的函数map()。这个函数的用法是map(function, iterable, ...),python3.x以后返回的是迭代器。

举个栗子
python3.x环境

def square(x):  #自定义函数square
    return x**2  #返回x的平方

a = map(square, [1,2,3,4])  #返回此列表被square函数加工后的结果

print(next(a))  #返回a中的“下一个”值
print(next(a))
print(next(a))
print(next(a))
  • 运行结果:

我输出了四次,每次的结果都不同,这就是迭代器机制。迭代器每次只输出一个结果,这和for循环一样:

for s in [1,2,3,4]:
   print(s)

将序列中的“值”轮流返回:

所以,for循环 本质也是迭代器
map()是通过你预定的函数方法加工后面的值,来得到结果
for循环是指定一个序列 循环赋值给一个临时值得到结果

  • 本人粗浅理解,如有错误,欢迎留言指正。