内置函数表:https://www.runoob.com/python/python-built-in-functions.html
目录
map()函数
reduce()函数
all()函数
any()函数
参考:【1】https://www.jianshu.com/p/e919f7eee06d
【2】https://www.runoob.com/python/python-func-map.html
python2中map()函数返回的是一个列表,但在python3中1他返回的是一个迭代数(iteration)。
map(function, iterable, ...)
map函数 将后面迭代对象元素(iterable)中的每一个元素,按照function的计算方法,返回一个新的列表对象。注意map不改变原来序列,生成新的可迭代对象。
def function(x):
return x**2
print(list(map(function,[1,2,3])))
## [1, 4, 9]
(2) iterable对象个数可以是多个,向function传播的时候,也是按照对应的位置进行传递。迭代对象个数和function接受的参数个数要一致。此时map是并行处理的。
m = (2,3,4)
n = (1,1,1)
M = map(lambda x,y: x*y,m,n) ## m,n只要是可迭代对象就可以
N = list(map(lambda x,y: x*y,m,n))
print(M,N)
##
(3)元素个数不同的时候,以短的为主。
def function(x,y):
return x**y
print(list(map(function,[1,2,3],[3,2])))
## output: [1, 4]
(4)map可以处理迭代器中不同类型的数据,主要依靠function必须支持不同类型的处理。
def function(x,y):
return x**int(y)
print(list(map(function,[1,2,3],['3',2])))
## output: [1,4]
参考:https://www.runoob.com/python/python-func-reduce.html
参考链接2
reduce(function, iterable[, initializer])
reduce()函数将iterable可迭代对象中的前两个参数,作为输入参数传到function ,然后function将结果 作为第一个参数 和iterable中的第三个参数(作为第二个参数)继续传入function。
from functools import reduce
nums = [1,2,3,4,5,6]
print(reduce(lambda x,y:x+y,nums)) # 21
print(reduce(lambda x,y:x+y,nums,-1)) # 20
## -1是第三个参数,作为function的第一个参数传入,先计算-1+1=0, 0+2, 2+3,...
reduce()中不能接受两个计算同时进行。
###### error ##########
print(reduce(lambda x,y:(x+y,x-y),nums))
all()和any()对应数学的全称量词和存在量词。
all()对应全称量词,全部为真则为真,否则为假。
any()对应存在量词,有一个为真则为真,否则为假。
all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False.
c = ['a','b','c','d']
print(all(c[i] > 'A' for i in range(0,len(c))))
###等价于####
def test(c):
for i in range(0,len(c)):
if c[i] <= 'A':
return False
return True
print(text(c))
all()函数在判断时,元素除了是 0、空、None、False 外都算 True。
c = ['a','','c','d'] ##空 -> False
c = [1,3,0] ## 0 -> False
c = [] ## True
c = [None] ## None -> False
c = [False,1,1] ##False ->False
print(all(c)) ##情况上面标明
都是0,None,False才是假。否则为真。
c = ['a','','c','d'] ##存在非空-> True
c = [1,3,0] ## 存在1 -> True
c = [] ## False
c = [None] ## 不存在真 -> False
c = [False,1,1] ##存在1 ->True
print(any(c)) ##情况上面标明
针对any() 和 all() 有个问题,为什么 c = [] 是 all()是True??? 是如何判定的??