1 # 本节主要学习内容 2 """ 3 1.lambda匿名函数 4 2.sorted() 5 3.filter() 6 4.map() 7 5.递归函数 8 """ 9 10 11 # 一.匿名函数 12 13 # 计算n的n次方 14 15 16 def func(n): 17 return n ** n 18 19 20 print(func(10)) 21 22 ll = lambda x: x ** x 23 print(ll(10)) 24 lst = [1, 5, 3, 4, 6] 25 lst2 = sorted(lst) 26 print(lst) 27 print(lst2) 28 dic = {1: "A", 3: "C", 2: "B"} 29 print(sorted(dic)) # 如果是字典,则返回排序过后的key 30 # 和函数组合使用 31 # 根据字符串⻓度进⾏排序 32 lst = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"] 33 34 # 35 # def func(s): 36 # return len(s) 37 # 38 # 39 # ll = sorted(lst, key=func) 40 # print(ll) 41 lsd = ["麻花藤", "冈本次郎", "中央情报局", "狐仙"] 42 ll = sorted(lsd, key=lambda x: len(x)) 43 print(ll) 44 45 lst = [ 46 {'id': 1, 'name': 'a', 'age': 18}, 47 {'id': 2, 'name': 'b', 'age': 58}, 48 {'id': 3, 'name': 'c', 'age': 48}, 49 {'id': 4, 'name': 'd', 'age': 18}, 50 ] 51 print(list(filter(lambda i: i['age'] > 40, lst))) 52 53 # def func(dic): 54 # return dic['age'] 55 # 56 # 57 # l1 = sorted(lst, key=func) 58 # print(l1) 59 60 ll = sorted(lst, key=lambda s: s['age']) 61 print(ll) 62 63 # filter() 64 # def func(i): 65 # return i % 2 == 1 66 67 68 lst = [1, 2, 3, 4, 5, 6, 7, 8, 9] 69 ll = filter(lambda i: i % 2 == 1, lst) 70 # 第一个参数 函数 将第二个参数中的函数中的每一个元素传给函数,如果函数返回true,留下该元素. 71 print(list(ll)) 72 # map 73 lit = [1, 2, 3, 4, 5, 6, 7, 8, 9] 74 print(list(map(lambda i: i*i, lit))) 75 # def func(i): 76 # return i*i 77 # 78 # 79 # li = map(func, lit) 80 # print(list(li)) 81 """递归""" 82 83 84 import os 85 filePath = r"C:\Users\86184\PycharmProjects\pythonProject" 86 87 88 def read(filePath, n): 89 it = os.listdir(filePath) # 查看文件夹中的文件 90 for el in it: 91 if os.path.isdir(os.path.join(filePath, el)): # 判断文件是文件夹还是文件 92 print("\t"*n, el) # 打印文件夹 93 read(os.path.join(filePath, el), n+1) 94 else: # 普通文件,不是文件夹 95 print("\t"*n, el) # 递归的出口 96 97 98 read(filePath, 0)