def fn(i):
return i % 3 == 0
#上下等价
lambda i : i%3==0
# 匿名对象,lambda函数表达式 (语法糖)
# lambda函数表达式,用来创建一些简单的函数,他是函数创建的又一种方式
# 语法 : lambda 参数列表 : 返回值
# 匿名函数一般都是作为参数使用,其他地方一般不会使用
lambda a,b : a + b
if __name__ == "__main__":
r = filter(fn,[1,3,5,7,9])
print(list(r))
print("***************************")
r1 = filter(lambda i : i%3==0 , [1,3,5,7,9])
print(list(r1))
print("***************************")
print(lambda a,b : a + b)
# 一般不这样用
print((lambda a,b:a+b)(10,20))
# 一般也不这样用(将匿名函数赋值给一个变量)
fn6 = (lambda a,b:a+b)
print(fn6(10,30))
# map()
# map()可以对可迭代对象中的所有元素做指定的操作,然后将其添加到一个新的对象中返回
l = [1,2,3,4,5,6,7,8,9,10]
r3 = map(lambda i: i +1,l)
print(list(r3))
#sort()
# 该方法用来对列表中的元素进行排序
# sort()方法默认是直接比较列表中的元素的大小
# 在sort()可以接收一个关键字参数,key
# key需要一个函数作为参数
l=['bb','aaaa','c','ddddddd','fff']
l.sort()
print(l)
l.sort(key=len)
print(l)
print("***************************")
l2 = [2,5,'1','6','4']
l2.sort(key=int)
print(l2)
# sorted()
# 这个函数和sort()用法基本一致,但是sorted()可以对任意的序列进行排序
# 并且使用sorted()排序不会影响原来的对象,而是返回一个新对象
l3 = [2,5,'1',3,'6','4']
print('before sorted:',l3)
l4=sorted(l3,key=int)
print('after sorted:',l3)
print('after sorted and return as:',l4)
print("***************************")
l5='12465714328972165'
print('before sorted:',l5)
print('after sorted and return as:',sorted(l5,key=int))
结果:
[3, 9]
***************************
[3, 9]
***************************
<function <lambda> at 0x7f53babefee0>
30
40
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
['aaaa', 'bb', 'c', 'ddddddd', 'fff']
['c', 'bb', 'fff', 'aaaa', 'ddddddd']
***************************
['1', 2, '4', 5, '6']
before sorted: [2, 5, '1', 3, '6', '4']
after sorted: [2, 5, '1', 3, '6', '4']
after sorted and return as: ['1', 2, 3, '4', 5, '6']
***************************
before sorted: 12465714328972165
after sorted and return as: ['1', '1', '1', '2', '2', '2', '3', '4', '4', '5', '5', '6', '6', '7', '7', '8', '9']
Process finished with exit code 0