map函数
map思想
map() 会根据提供的函数对指定序列做映射。第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
map返回值
prthon3返回值为迭代器
代码实现
#######代码实现思想步骤,进阶版为完整代码############################
def map(f,intera): #调用fadd
for i in intera:
yield f(i)
def fadd(x): #功能函数,可以用匿名函数代替,极大缩短代码量
return x**2
g = map(fadd,[1,2,3,4]) #调用 fmap
for j in g: #依次输出g
print(j) #通过for 循环打印
print(next(g)) #通过next函数打印
#########for循环和next会相互叠加干扰,一起用和不用next结果一样没有意义
for j in g: #依次输出g
#不打印for循环还是会增加
print(next(g)) ##通过next函数打印
#########for循环和next依次输出,应为没打印for循环的输出所以会造成输出间隔缺省
for j in range(4): #单纯使用循环打印next
print(next(g))
####进阶版#####################################################
def fmap(f,inter):
for i in inter:
yield f(i)
a =map(lambda x:x**2,[1,2,3,4,5,6,7,8,9])
for i in a:
print(i)
##############################################################
迭代器打印取值小问题
迭代器取值时next 和for循环的相互冲突打印,
for i in lst 循环打印间隔next取值和 for i in range(n) 单纯next取值的区别
filter函数
filter思想
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
filter返回类型
python3 返回为迭代器对象
代码实现
#######单条件挑选##################################
def filter(f,iter):
for i in iter:
if f(i):
yield i
c = filter(lambda x:x=="man",["man","man","woman"])
for i in c:
print(i)
#######挑选大于2的偶数存入新的列表返回###############
def ff(f,ff,inter):
lst =[]
for i in inter:
if f(i):
if ff(i):
lst.append(i)
return lst
d=ff(lambda x