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)