一 . 内置函数
内置函数就是python内部给我们编写好的函数,我们可以直接拿来用
1.几个比较关键的内置函数:
(1).zip()
#无论是L1多还是L2多,都返回到最短的那个截至 L1=[1,2,3,4] L2=['a','b','c'] ret=zip(L1,L2) for i in ret: print(i) # (1, 'a') # (2, 'b') # (3, 'c')
(2).filter()
def a(x): #if x%2==1: # return True return x%2==1 ret=filter(a,(1,2,3,4,5)) #filter(函数名,参数)把为真的值返回 print(ret) for i in ret: print (i)
#上面代码可以使用下面方式表达 for i in range(1,6): if i %2==1: print(i)
#练习,输出1-100中平方根是整数的数 import math def a(x): if math.sqrt(x)%1==0: return True ret=filter(a,range(1,101)) for i in ret: print(i)
(3)map()
ret=map(abs,(-1,4,5,3,-8)) for i in ret: print(i) # 1 # 4 # 5 # 3 # 8
3.sort与sorted
#sort函数 l=[3,6,4,1,5] l.sort() print(l) #结果:[1,3,4,5,6] #sorted函数 l=[3,6,4,1,5] a=sorted(l) print(a) #结果:[1,3,4,5,6]
二.匿名函数
匿名函数结构:
函数名 = lambda 参数 :返回值
匿名函数特点:
可以将函用一句话表示出来,简化代码
实例1:
#普通函数 def func(x,y): if x>y: print(x) else: print(y) func(1,3) #匿名函数 a=lambda x,y:x if x>y else y print(a(1,3))
匿名函数面试题
#面试题1: d=lambda x:x*2 t=lambda x:x*3 x=2 x=d(x) x=t(x) x=d(x) print(x) #结果:24
#面试题2 #把('a','b'),('c','d')利用匿名函数转化为[{'a','c'},{'b','d'}] a1=('a','b') a2=('c','d') # def func(tup): # return {tup[0],tup[1]} ret=zip(a1,a2) rep=map(lambda tup:{tup[0],tup[1]},ret) print(list(rep))
三.递归函数
#阶乘 def a(n): if n==1: return 1 else: return a(n-1)*n print(a(5))
#斐波那契 def a(n): if n==1: return 0 elif n==2: return 1 else: return a(n-1)+a(n-2) print(a(30))
#经典二分查找 def find(l,aim,start=0,end=None): end=len(l) if end is None else end midle_num=(start+end)//2 if start<=end: if aim<l[midle_num]: return find(l,aim,start=start,end=midle_num-1) elif aim>l[midle_num]: return find(l,aim,start=midle_num+1,end=end) else: return midle_num else: return "can't find it" l=[1,3,6,9,24,35,67] print(find(l,6))