案例一:(构造列表)
[x for x in (lambda *args :map(lambda x:x+1,args))(*range(5))]
运行结果:
[1, 2, 3, 4, 5]
案例二:
[x for x in (lambda *args :zip('abcde',args))(*range(5))]
运行结果:
[('a', 0), ('b', 1), ('c', 2), ('d', 3), ('e', 4)]
案例三:
[x for x in (lambda *args :map(lambda x:(x,args),['a','b','c','d','e']))(*range(5))] #此处args为自由变量,形成了闭包
运行结果:
[('a', (0, 1, 2, 3, 4)),
('b', (0, 1, 2, 3, 4)),
('c', (0, 1, 2, 3, 4)),
('d', (0, 1, 2, 3, 4)),
('e', (0, 1, 2, 3, 4))]
案例四:(构造生成器)
gt = (x for x in (lambda *args :map(lambda x:(x,args),['a','b','c','d','e']))(*range(5)))
for i in gt:
print(i)
运行结果:
('a', (0, 1, 2, 3, 4))
('b', (0, 1, 2, 3, 4))
('c', (0, 1, 2, 3, 4))
('d', (0, 1, 2, 3, 4))
('e', (0, 1, 2, 3, 4))
案例五:(过滤能被3整除的数)
list(filter(lambda x:x%3==0,[1,3,5,7,9]))
运行结果:
[3, 9]