Day - 6
Author: Denny YU
Created: January 14, 2022 9:23 PM
Lambda表达式和匿名函数
Lambda表达式用来声明匿名函数,不能包含复杂语句,格式为 lmabda arg1,agg2...:表达式
返回表达式的结果。这样用语句不能太长(一定要注意lamba返回的是一个函数!!)可以和map()函数搭配起来使用
>>> list(map(lambda x:x*2,range(10)))
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
浅拷贝和深拷贝
copy:不拷贝子对象的内容,只拷贝引用
deepcopy:对对象内存全部拷贝,对子对象的修改不会影响源对象
- 注意到浅拷贝时,子对象的id时不变的
- 深拷贝时子对象的id变化了,说明创建了一个新的子对象
eval()函数用法
eval()作用是将字符串转化为python的命令运行,尤其试用在用户交互的场景中
递归小练习
用递归计算累加和
## 用列表表达式列出累加和
def accumulate(n):
if n==0:
return 0
else:
return n+accumulate(n-1)
print(accumulate(5))
a=[accumulate(x) for x in range(10)]
print(a)
##################################################################输出
15
[0, 1, 3, 6, 10, 15, 21, 28, 36, 45]
[Finished in 92ms]
用递归计算阶乘
##递归函数计算阶乘
def factorial(n):
if n == 1:
return 1
else:
return n*factorial(n-1)
print(factorial(10))
a=[factorial(x) for x in range(1,5)]
print(a)
#############################################################输出
3628800
[1, 2, 6, 24]
[Finished in 89ms]