正文
近日学习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循环是指定一个序列 循环赋值给一个临时值得到结果
- 本人粗浅理解,如有错误,欢迎留言指正。