python 函数 装饰器 内置函数

时间:2023-01-08 10:38:22

函数 装饰器 内置函数

一.命名空间和作用域

python 函数 装饰器 内置函数

二.装饰器

1.无参数

python 函数 装饰器 内置函数

2.函数有参数

python 函数 装饰器 内置函数

3.函数动态参数

python 函数 装饰器 内置函数

4.装饰器参数

python 函数 装饰器 内置函数

三.内置函数

 salaries={
'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':250
}
print(sorted(salaries)) #默认是按照字典salaries的key去排序的 print(sorted(salaries,key=lambda x:salaries[x])) sorted

sorted

 l1=[1,2,3,4]
s='hel'
for i in zip(l1,s):
print(i)
------------输出结果-------
(1, 'h')
(2, 'e')
(3, 'l') salaries={
'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':250
} z=list(zip(salaries.values(),salaries.keys()))
------------输出结果-------
[(3000, 'egon'), (100000000, 'alex'), (250, 'yuanhao'), (10000, 'wupeiqi')] zip

zip

 #max

 salaries={
'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':250
} print(max(salaries,key=lambda k:salaries[k]))
------------输出结果-------
alex max

max

 #enumerate

 for i in enumerate(['a','b','c','d']):
print(i)
------------输出结果-------
(0, 'a')
(1, 'b')
(2, 'c')
(3, 'd') enumerate

enumerate

 #map

 #用map来处理字符串列表啊,把列表中所有人都变成sb,比方alex_sb
name=['alex','wupeiqi','yuanhao'] name_new = list(map(lambda i: i + '_sb', name)) #用map来处理下述l,然后用list得到一个新的列表,列表中每个人的名字都是sb结尾
l=[{'name':'alex'},{'name':'y'}] l = list(map(lambda x:x["name"] + "sb",l)) map

map

 #用filter来处理,得到股票价格大于20的股票名字
shares={
'IBM':36.6,
'Lenovo':23.2,
'oldboy':21.2,
'ocean':10.2,
} shares = list(filter(lambda x:shares[x] >20,shares)) #filter #如下,每个小字典的name对应股票名字,shares对应多少股,price对应股票的价格
portfolio = [
{'name': 'IBM', 'shares': 100, 'price': 91.1},
{'name': 'AAPL', 'shares': 50, 'price': 543.22},
{'name': 'FB', 'shares': 200, 'price': 21.09},
{'name': 'HPQ', 'shares': 35, 'price': 31.75},
{'name': 'YHOO', 'shares': 45, 'price': 16.35},
{'name': 'ACME', 'shares': 75, 'price': 115.65}
] #用filter过滤出,单价大于100的股票有哪些 name = list(filter(lambda x:x["price"] > 100,portfolio))
print(name) filter

filter

 s=[1,"h",2,"e",[1,2,3],"l",(4,5),"l",{1:""},"o"]

 from functools import reduce
print(reduce(lambda x,y:x+y,[s[i] for i in range(len(s)) if i % 2 == 1]))
------------------输出结果----
hello reduce

reduce