python内置函数、匿名函数、递归

时间:2022-12-02 19:16:47

一、内置函数

python内置函数、匿名函数、递归

  内置函数详解:http://www.runoob.com/python/python-built-in-functions.html

二、匿名函数

  匿名函数就是不需要显示的指定函数

1 #这段代码
2 def calc(n):
3 return n**n
4 print(calc(10))
5
6 #换成匿名函数
7 calc = lambda n:n**n
8 print(calc(10))

  匿名函数主要用来和其他函数搭配使用

1 l=[3,2,100,999,213,1111,31121,333]
2 print(max(l))
3
4 dic={'k1':10,'k2':100,'k3':30}
5
6
7 print(max(dic))
8 print(dic[max(dic,key=lambda k:dic[k])])
# 1 文件内容如下,标题为:姓名,性别,年纪,薪资
#

#
egon male 18 3000
#
alex male 38 30000
#
wupeiqi female 28 20000
#
yuanhao female 28 10000

with open(
'b.txt',encoding='utf-8') as f:
l1
=[{'name':line.split()[0],'sex':line.split()[1],\
'age':line.split()[2],'salary':line.split()[3]}for line in f]

# 4 根据1得到的列表,将每个人的信息中的名字映射成首字母大写的形式
l4=[i['name'] for i in l1]
print(list(map(lambda item:item.capitalize(),l4)))

# 5 根据1得到的列表,过滤掉名字以a开头的人的信息
l4=[i['name'] for i in l1]
print(list(filter(lambda name:not name.startswith('a'),l4)))

三、递归调用

  递归特性:

  1. 必须有一个明确的结束条件

  2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少

  3. 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出)

  递归有两个阶段

  阶段一:递推

  阶段二:回溯