使⽤ set ,可以快速的完成对 list 中的元素去重复的功能 请写出⼀段 Python 代码实现分组⼀个 list ⾥⾯的元素 , ⽐如 [1,2,3,...100] 变成 [[1,2,3],[4,5,6] ] a = [x for x in range(1,101)] b = [a[x:x+3] for x in range(0,len(a),3)] ⽤ lambda 关键词能创建⼩型匿名函数。这种函数得名于省略了⽤ def 声明函数的标准步骤。 lambda [arg1 [,arg2, argn]]:expression sum = lambda arg1, arg2: arg1 + arg2 print("Value of total : " % sum( 10, 20 )) print("Value of total : "% sum( 20, 20 )) Value of total : 30 Value of total : 40 Lambda 函数能接收任何数量的参数但只能返回⼀个表达式的值匿名函数不能直接调⽤ print ,因为 lambda 需要⼀个表达式 >>> def fun(a, b, opt): ... print("a = " % a) ... print("b = " % b) ... print("result =" % opt(a, b)) ... >>> fun(1, 2, lambda x,y:x+y) a = 1 b = 2 result = 3 想⼀想,下⾯的数据如何指定按 age 或 name 排序? stus = [ {"name": "zhangsan", "age": 18}, {"name": "lisi", "age": 19}, {"name": "wangwu", "age": 17} >>> stus.sort(key = lambda x: x['name']) >>> stus [{'age': 19, 'name': 'lisi'}, {'age': 17, 'name': 'wangwu'}, {'age': 18, 'name': 'zhangsan'}] >>> stus.sort(key = lambda x: x['age']) >>> stus [{'age': 17, 'name': 'wangwu'}, {'age': 18, 'name': 'zhangsan'}, {'age': 19, 'name': 'lisi'}] 如果 ⼀个函数在内部调⽤其本身,这个函数就是 递归函数。递归函数的作⽤ 举个例⼦,我们来计算阶乘 n! = 1 2 3 ... n 1! = 1 4! = 4 × 3 × 2 × 1 = 4 × 3! ... n! = n × (n-1)! # 如果定义 step_num 函数实现了阶乘,相当于 step_num(n) = n * step_num(n-1) def step_num(num): if num > 1: return num * step_num(num - 1) else: return 1 递归函数⼀般都需要⼀个条件判断来打破死循环 , 否则会导致到达最⼤嵌套次数,程序报错 import sys print(sys.argv) |