推导式: 推导式优于for循环生成,且更简洁,符合python的特点 listname=[x for x in 表达式] a=[n**2 for n in range(1,11) if n%2==0] b=[letter.lower() for letter in "ABCDE"]
c=list(filter(lambda x:x%3==1,[x for x in range(1,101)]))
字典推导式
d={ i : i+1 for i in range(1,5)} e={j:i for i,j in zip(range(1,6),'abcde'}
lambda匿名函数:
lambda 并不会带来程序运行效率的提高,只会使代码更简洁。
如果可以使用for…in…if来完成的,坚决不用lambda
个人觉得:lambda主要是用来配合高阶函数使用,
函数调用函数,本来就是影响代码的可读性,通过lambda简化一些简易函数,从而增强可读性
lambda表达式中如果有if 那么必须补全else 否则报错
lambda表达式应用举例:
配合高阶函数使用
# 配合map()函数使用
a = [1, 3, 5]
b = [2, 4, 6]
c=list(map(lambda x,y:x*y,a,b))
#或者
d=list(map(lambda x,y:x*y,[1,3,5],[2,4,6]))
#或者
squares = map(lambda x: x**2, range(5))
# 结合filter()