python 函数 装饰器 内置函数
函数 装饰器 内置函数
一.命名空间和作用域
二.装饰器
1.无参数
2.函数有参数
3.函数动态参数
4.装饰器参数
三.内置函数
1 salaries={
2 'egon':3000,
3 'alex':100000000,
4 'wupeiqi':10000,
5 'yuanhao':250
6 }
7 print(sorted(salaries)) #默认是按照字典salaries的key去排序的
8
9 print(sorted(salaries,key=lambda x:salaries[x]))
10
11 sorted
1 l1=[1,2,3,4]
2 s='hel'
3 for i in zip(l1,s):
4 print(i)
5 ------------输出结果-------
6 (1, 'h')
7 (2, 'e')
8 (3, 'l')
9
10
11
12 salaries={
13 'egon':3000,
14 'alex':100000000,
15 'wupeiqi':10000,
16 'yuanhao':250
17 }
18
19 z=list(zip(salaries.values(),salaries.keys()))
20 ------------输出结果-------
21 [(3000, 'egon'), (100000000, 'alex'), (250, 'yuanhao'), (10000, 'wupeiqi')]
22
23 zip
1 #max
2
3 salaries={
4 'egon':3000,
5 'alex':100000000,
6 'wupeiqi':10000,
7 'yuanhao':250
8 }
9
10 print(max(salaries,key=lambda k:salaries[k]))
11 ------------输出结果-------
12 alex
13
14 max
1 #enumerate
2
3 for i in enumerate(['a','b','c','d']):
4 print(i)
5 ------------输出结果-------
6 (0, 'a')
7 (1, 'b')
8 (2, 'c')
9 (3, 'd')
10
11 enumerate
1 #map
2
3 #用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sb
4 name=['alex','wupeiqi','yuanhao']
5
6 name_new = list(map(lambda i: i + '_sb', name))
7
8
9 #用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
10 l=[{'name':'alex'},{'name':'y'}]
11
12 l = list(map(lambda x:x["name"] + "sb",l))
13
14 map
1 #用filter来处理,得到股票价格大于20的股票名字
2 shares={
3 'IBM':36.6,
4 'Lenovo':23.2,
5 'oldboy':21.2,
6 'ocean':10.2,
7 }
8
9 shares = list(filter(lambda x:shares[x] >20,shares))
10
11
12 #filter
13
14 #如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格
15 portfolio = [
16 {'name': 'IBM', 'shares': 100, 'price': 91.1},
17 {'name': 'AAPL', 'shares': 50, 'price': 543.22},
18 {'name': 'FB', 'shares': 200, 'price': 21.09},
19 {'name': 'HPQ', 'shares': 35, 'price': 31.75},
20 {'name': 'YHOO', 'shares': 45, 'price': 16.35},
21 {'name': 'ACME', 'shares': 75, 'price': 115.65}
22 ]
23
24 #用filter过滤出,单价大于100的股票有哪些
25
26 name = list(filter(lambda x:x["price"] > 100,portfolio))
27 print(name)
28
29 filter
1 s=[1,"h",2,"e",[1,2,3],"l",(4,5),"l",{1:"111"},"o"]
2
3 from functools import reduce
4 print(reduce(lambda x,y:x+y,[s[i] for i in range(len(s)) if i % 2 == 1]))
5 ------------------输出结果----
6 hello
7
8 reduce