标签:一个 lte pytho iterable 自动 false int font lambda表达式
lambda表达式
这个函数用于一些简单的逻辑,请看下面这个例子:
def func(x):
return x ** 2
上面这个函数逻辑很简单,对于我们来说,最重要的就是参数和返回值。正好lambda表达式应运而生:
lambda 参数值:返回值
因此对于第一个函数,可以改写成这样:
func = lambda x:x**2
print(func(10))
求两个数的和:
# 定义函数
def sum(a,b):
return a+b
# lambda表达式
sum=lambda a,b:a+b
sorted函数
语法:sorted(iterable,key=None,reverse=False)
这里面key是一个函数
def func(item):
return len(item)
lst = ["欧阳东明", "刘伟", "刘能", "赵四", "王大拿", "赵瑞鑫"]
res = sorted(lst, key=func)
print(res)
lst = ["欧阳东明", "刘伟", "刘能", "赵四", "王大拿", "赵瑞鑫"]
res = sorted(lst, key=lambda item: len(item), reverse=True)
print(res)
key可以先写正常的函数,再改写成lambda表达式。
练习:按照年龄对学生信息排列
lst = [
{"id": 1, "name": "alex", "age": 18},
{"id": 2, "name": "test", "age": 19},
{"id": 3, "name": "dgf", "age": 17},
]
res = sorted(lst, key=lambda item: item['age'])
print(res)
练习:按照学生姓名长度进行排序
lst = [
{"id": 1, "name": "alex", "age": 18},
{"id": 2, "name": "tesqt", "age": 19},
{"id": 3, "name": "dgf", "age": 17},
]
res = sorted(lst, key=lambda item: len(item['name']))
print(res)
filter筛选
语法:filter(function,iterable)
function:用来筛选的函数,在filter中会自动把iterable中的元素传递给function。然后根据function返回的True或者False来判断是否保留此数据。
# 筛选出大于18的数
lst = [11, 15, 18, 85, 45]
res = filter(lambda item: item >= 18, lst)
for el in res:
print(el, end=' ')
map映射
语法:map(funtion,iterable)
# 可以对可迭代对象中的每一个元素进行映射,分别执行function。
计算每个元素的平方:
lst = [11, 15, 18, 85, 45]
res = map(lambda x: x ** 2, lst)
print(list(res))
标签:一个 lte pytho iterable 自动 false int font lambda表达式
原文地址:https://www.cnblogs.com/gaofeng-d/p/11439864.html