匿名函数
lambda x:x**2
关键字lambda表示匿名函数,冒号前面的x表示函数参数。
匿名函数。
用法:
- 把匿名函数赋值给一个变量,再利用变量来调用该函数
- 配合其他函数使用
func=lambda x:x**2
print(func(2))
# 4
l=list(map(lambda x:x*2,range(5)))
# map(func, *iterables)
print(l)
# [0, 2, 4, 6, 8]
l=list(filter(lambda n:n%2==1,range(1,20)))
print(l)
# [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
Python对匿名函数的支持有限,只有一些简单的情况下可以使用匿名函数。最多支持到三元运算。
def calc(x,y):
if x < y:
return x*y
else:
return x/y
func = lambda x,y: x*y if x < y else x/y #声明一个匿名函数
列表生成式
- 把要生成的元素
x * 2
放到前面,后面跟for循环,就可以把list创建出来 - 支持三元运算
- 可以双for循环
- 可以用多个变量
l=[x*2 for x in range(5)]
print(l)
# [0, 2, 4, 6, 8]
列表内元素加1
a=[1,2,3,5,6,7]
a=[x+1 for x in a]
print(a)
# [2, 3, 4, 6, 7, 8]
a=[x*2 for x in range(5) if x> 2]
print(a)
# [6, 8]
l=[m+n for m in 'he' for n in 'wo']
print(l)
# ['hw', 'ho', 'ew', 'eo']
for k, v in d.items():
print(k, '=', v)
# x = A
# y = B
# z = C
l=[k + '=' + v for k, v in d.items()]
print(l)
# ['x=A', 'y=B', 'z=C']
把字符串筛选出来并小写
L1 = ['Hello', 'World', 18, 'Apple', None]
L2=[x.lower() for x in L1 if isinstance(x,str)]
print(L2)
# ['hello', 'world', 'apple']