Python之高级函数之高级函数-高级程序员与普通程序员的区别高级程序员与普通程序员的区别
目录目录
python的高阶函数
1、假如你想从一个考试分数的列表中删除所有的0分,怎么办?
普通程序员:
高级程序员:
2、filter函数
3、给定一个数列[1,3,5,6,7,9,10,435],求数列中每一项相乘的结果
普通程序员
高级程序员:
4、函数的递归和嵌套
通过生成菲波那切数列来演示:
python的高阶函数的高阶函数
1、假如你想从一个考试分数的列表中删除所有的、假如你想从一个考试分数的列表中删除所有的0分,怎么办?分,怎么办?
普通程序员:普通程序员:
第一步:定义一个函数
def remove_zero(yourList):
newlist = [] for number in yourList:
if number > 0:
newlist.append(number)
return newlist
第二步:在用到该功能的地方调用之
if __name__ == '__main__':
mylist = [12,4,0,23] print(remove_zero(mylist))
高级程序员:高级程序员:
只有一步,直接上lambda表达式
if __name__ == '__main__':
mylist = [12,4,0,23] new_l = list(filter(lambda number: number > 0, mylist))
print(new_l)
科普一下,lambda表达式。
lambda表达式不是python的独有武功,java8中也有。说简单点就是你可以把一个匿名函数作为参数传递给另一个函数(方
法)。在Python中Lambda的语法是这样的:
lambda :
java8中lambda表达式的语言是这样的:
(parameters) -> expression
没有比较就没有伤害,python的写法依旧是延用":",而且前面的lambda是必须有的,否者会报错。
2、、filter函数函数
filter(isPositive,oldList), 该函数接受2个参数,第一个参数接受一个布尔函数,第二个参数接受一个可迭代对象。所以我们可
以给filter函数传入一个lambda表达式。
评论0
最新资源