map()函数第一个参数是 fun,第二个参数是一般是 list,第三个参数可以写 list
,也可以不写
,作用就是对列表中 list 的每个元素顺序调用函数 fun 。
>>> b=map(lambda x:x*x,[1,2,3])n>>> [i for i in b]n[1, 4, 9]n>>> [i for i in b]n[]n>>>
有没有发现,第二次输出 b 中的元素时,发现变成空了
。原因是 map() 函数返回的是一个迭代器,并用对返回结果使用了 yield,这样做的目的在于节省内存
。 举个例子:
#encoding:UTF-8 ndef yield_test(n): n for i in range(n): n yield call(i) n #做一些其它的事情 nndef call(i): n return i*2 nn#使用for循环 nx = yield_test(5)nprint([i for i in x])nprint([i for i in x])
>>> a=[1,2]n>>> b=(3,4)n>>> zip(a,b)n<zip object at 0x000001A20201AA08>n>>> for i in zip(a,b):n... print(i)n...n(1, 3)n(2, 4)n>>> a="ab"n>>> b="xyz"n>>> for i in zip(a,b):n... print(i)n...n('a', 'x')n('b', 'y')n>>>