匿名函数3(实战)
2021-01-12 本文已影响0人
闲云野鹤_23dd
匿名函数3(实战)
接下来学习 : max,min,sorted,map,reduce,filter .这些函数可以对复杂list 和 字典 的数据 进行处理. 都需要用到匿名函数.
max
求最大值
def max_demo():
alist = [-9, -8, 1, 3, -4, 6]
# 求最大值
print(max(alist))
## 求绝对值的最大值
tmp = max(a, key=lambda x: abs(x))
print(tmp)`
salaries={
'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000
}
info = [
{'name': 'egon', 'age': '18', 'salary': '3000'},
{'name': 'wxx', 'age': '28', 'salary': '1000'},
{'name': 'lxx', 'age': '38', 'salary': '2000'}
]
def get(k):
return salaries[k]
def max_demo2():
# 求salaries中工资最高的人
print(max(salaries, key=get)) # 'alex'
print(max(salaries, key=lambda x: salaries[x]))
# 求info中工资最高的人
print(max(info, key= lambda dic: int( dic['salary'] )))`
min
求最小值
def min_demo():
# 求salaries中工资最低的人
print(min(salaries, key=get))
print(min(salaries, key=lambda x: salaries[x]))
# 求info中工资最低的人
print(min(info, key=lambda dic: int(dic['salary'])))`
sorted
排序
def sorted_demo():
key_up=sorted(salaries) # 默认按照字典的键排序
print(key_up)
up=sorted(salaries,key=lambda x:salaries[x]) #默认是升序排
print(up)
down=sorted(salaries,key=lambda x:salaries[x],reverse=True) #降序
print(down)
l = sorted(info, key=lambda dic: int(dic['salary']))
print(l)`
map
让每个元素作为参数,执行一个函数
例子:
def map_demo():
v1 = [11, 22, 33, 44]
# 将元素的每个值加100
result = map(lambda x: x + 100, v1) # 第一个参数为执行的函数,第二个参数为可迭代元素.
print(list(result)) # [111,122,133,144]
names=['alex','wupeiqi','yuanhao','egon']
# 给名字做拼接
res=map(lambda x:x+'_A' if x == 'egon' else x + '_B',names)
print(list(res))`