python高级函数以及我对python的理解

常见的高级函数:lambda、map、reduce、filter、list comprehension

lambda

  • 匿名函数,限制一个表达式
m = lambda x,y:x+y
# 5
m(2,3)

map/list comprehension

  • 列表推导式
m = lambda x:x*2
# [1,4,9]
[m(i) for i in [1,2,3]]
# <map at 0x105a5f828> 可迭代
map(m,[1,2,3])

reduce

  • reduce(fun,seq)
  • 假设fun(x,y),seq首先传入2个元素,函数返回结果,继续传入下一个元素,直到元素全部遍历,最终得到一个结果。
import functools
import operator
a = [1,2,3,4]
# sum
functools.reduce(lambda a,b:a+b,a)
# max
functools.reduce(lambda a,b:a if a>b else b,a)

# 使用operator
In [21]: functools.reduce(operator.add,a)
Out[21]: 10
# product 乘
In [22]: functools.reduce(operator.mul,a)
Out[22]: 24

filter

  • filter(function, sequence)
  • 可迭代的对象内元素,被函数调用,产生的True or False结果,返回结果为True的元素
a = [1,2,3,4]
# 奇数
# <filter at 0x105ac53c8>
b = filter(lambda x:x%2,a)
# 偶数
b = filter(lambda x:x%2 ==0,a)

我对于python的理解

python是一门解释型的高级语言,其解释器是由C语言编写的。在不了解cpython的前提下,依然可以完成大部分的开发工作。

它放弃一部分性能,使语言更加通俗易通,更加容易上手。我觉得这就是python的设计理念,杂糅很多其他语言的特性,可以面向对象,可以面向过程,高级函数也基于函数式编程的思想产生。

所以怎样才算精通python?

上面的点不一定要循序渐进。

java、golang、python,拥有很多独特的特性,但是殊途同归,底层的东西都是相似。就像人类语言,无论形式如何变化,最终都是表示具体的事物。深入理解一门语言,就像张无忌修习了九阳神功,以后无论是乾坤大挪移还是太极拳,都是水到渠成的事。

掌握的越多,对python的理解越深刻,才能脱离语言的束缚,找到编程真正的快乐。

无论我们学的是什么,愿你我都能找到编程的乐趣。共勉!!!

参考资料

猜你喜欢

转载自www.cnblogs.com/ForPython/p/12002170.html