无意间在网上看到这个阿里校招面试题,正好自己也在自学python,于是尝试实现了一下:
#!usr/bin python# -*- coding: utf-8 -*-from functools import reducel = [ 1, 2, 3, 4, 5 , 6 ] l2 = reduce( lambda x, y : x + y, map( lambda i: i+3, list( filter( lambda y:y%2 == 0, l ) ) ) ) l3 = sum( list( map( lambda x: x + 3, list( filter( lambda y:y%2 == 0, l ) ) ) ) )PRint( l2 )print( l3 )这里reduce实现的就是sum的功能,看不出二者的区别。 比较尴尬的是,目前不会将
map( lambda i: i+3, list( filter( lambda y:y%2 == 0, l ) ) )转换成for循环,原则上map都可以转换的,以后再来修改。
Tips:reduce的参数 -函数-必须接受两个参数。
新闻热点
疑难解答