测试过程:
def add(x, y, z):
return x+y+z
a = map(add, [1,1,1], [2,2,2], [3,3,3])
print(list(a))
结果:[6,6,6]
a = map(add, [1,1,1], [2,2,2], [3,3,3], [4,4,4])
结果:TypeError: add() takes 3 positional arguments but 4 were given实参多了
a = map(add, [1,1,1],[2,2,2]) # 序列个数小于参数个数
结果:TypeError: add() missing 1 required positional argument: 'z'确少实参z
a = map(add, [1,1,1], [2,2,2], [3]) # 列表长度不一样,以短的为主计算
结果:[6]
a = map(add, [1,1,1], []) # 存在空时,无论几个序列最终结果都为空!!
a = map(add, [1],[2],[3],[4],[])
结果都是:[]
序列有空:判断序列中是否有为空的情况,有空时,结果必为空
序列无空:函数参数个数与序列的个数保持一致!
留意:取字典的键值
gen3 = map(lambda x:int(x),{‘1’:10,‘2’:20})
print(list(gen3)) #[1,2]
将列表转换成整数
print(reduce(lambda x, y: x+y, [1, 2, 5, 7])) #1257
print(reduce(lambda x, y: x+y, [], 6)) #6 当传入[]空,使用默认值
内置函数
格式:filter(function, iterable)
参数1:function 函数,迭代器元素传入,为真的保留,为假的去除
参数2:iterable可迭代对象
返回值: 一个新的迭代器或迭代对象!
功能:对可迭代元素起到过滤作用!
a = filter(lambda x: isinstance(x, str), [1, 3, 5, ‘asd’, 5])
print(next(a)) 去除列表中的非字符串数据
等价于[s for s in [1, 3, 5, ‘and’, 5] if isinstance(s, str)]
判断回文数:
def is_palindorme(n):
l1 = list(str(n)) # 数字转换成字符串列表
l2 = l1[::-1]
if l1 == l2:
return True
return False